[ 
https://issues.apache.org/jira/browse/HADOOP-5979?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12717809#action_12717809
 ] 

Milind Bhandarkar commented on HADOOP-5979:
-------------------------------------------

It would be valuable to have a non-java streaming partitioner. It should be 
executed once per map task, and should take as input (through stdin), the 
text-encoded key value pairs (one per line, separated by field separator), and 
output on stdout a number (again, text-encoded) for each key value pair.

Number of partitions, i.e. number of reducers should already be available to 
this streaming partitioner as the environment variable mapred_reduce_tasks. So, 
no need to pass it in each line.

Partitioner need not be an "advanced" feature. Think about a parallel bucketing 
operation, where number of buckets is predetermined, so the mapper makes a 
decision where each value should go. In this case, the key is a partition ID, 
and value is the record to be bucketed. HashBased partitioner of course does 
not work in this case. But a streaming partitioner, such as 'cut -f1' is what 
is needed.

> Streaming partitioner should allow command, not just Java class
> ---------------------------------------------------------------
>
>                 Key: HADOOP-5979
>                 URL: https://issues.apache.org/jira/browse/HADOOP-5979
>             Project: Hadoop Core
>          Issue Type: Improvement
>          Components: contrib/streaming
>            Reporter: Klaas Bosteels
>
> Since HADOOP-4842 got committed, Streaming allows both commands and Java 
> classes to be specified as mapper, reducer, and combiner, but the 
> {{-partitioner}} option is still limited to Java classes only. Allowing 
> commands to be specified as partitioner as well would greatly improve the 
> flexibility of Streaming programs.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to