当我为pythonMap器和reducer代码运行hadoop流式处理命令时,数据在reduce阶段之前并没有得到正确的分区和排序。键值分隔的分隔符是“|”。此外,输入数据的形式
1901|100
1901|50
1903|400
1904|500
我正在运行的命令:
hadoop jar /opt/mapr/hadoop/hadoop-2.7.0/share/hadoop/tools/lib/hadoop-streaming-2.7.0-mapr-1607.jar \
-D mapreduce.job.name="test_sort " \
-D stream.map.input.field.separator='|' \
-D stream.map.output.field.separator='|' \
-D stream.num.map.output.key.fields=2 \
-D mapreduce.input.keyvaluelinerecordreader.key.value.separator='|' \
-D mapreduce.partition.keypartitioner.options=-k1,1 \
-D mapreduce.job.output.key.comparator.class=org.apache.hadoop.mapreduce.lib.partition.KeyFieldBasedComparator \
-D mapreduce.partition.keycomparator.options="-k1n -k2n" \
-D mapreduce.job.reduces=3 \
-input /test_sort/input.txt \
-output /test_sort/test_30_03 \
-mapper "python check_mapper.py" \
-file check_mapper.py \
-reducer org.apache.hadoop.mapred.lib.IdentityReducer \
-partitioner org.apache.hadoop.mapred.lib.KeyFieldBasedPartitioner
暂无答案!
目前还没有任何答案,快来回答吧!