数据没有在python中的hadoop流中分割和分类

时间:2017-03-30 10:09:06

标签: python hadoop mapreduce hadoop-streaming

当我为我的python mapper和reducer代码运行hadoop streaming命令时,数据在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

0 个答案:

没有答案