在python的hadoop流媒体中没有对数据进行分区和排序

daolsyd0  于 2021-05-29  发布在  Hadoop
关注(0)|答案(0)|浏览(201)

当我为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

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题