1. 编写map程序mapper.sh;reduce程序reducer.sh; 测试数据test.txt
mapper.sh: #!/bin/sh cat reducer.sh: #!/bin/sh sort test.txt内容: 1,2,1,1,1 1,2,2,1,1 1,3,1,1,1 1,3,2,1,1 1,3,3,1,1 1,2,3,1,1 1,3,1,1,1 1,3,2,1,1 1,3,3,1,1
$ hadoop fs -put test.txt /app/test/ $ hadoop streaming -input /app/test/test.txt / -output /app/test/test_result / -mapper ./mapper.sh -reducer ./reducer.sh -file mapper.sh -file reducer.sh / -jobconf mapred.reduce.tasks=2 / -jobconf mapre.job.name="sep_test" $ hadoop fs –cat /app/test/test_result/part-00000 1,2,2,1,1 1,3,1,1,1 1,3,1,1,1 1,3,3,1,1 1,3,3,1,1 $ hadoop fs –cat /app/test/test_result/part-00001 1,2,1,1,1 1,2,3,1,1 1,3,2,1,1 1,3,2,1,1
$ hadoop streaming -D stream.reduce.output.field.separator=,
-D stream.num.reduce.output.key.fields=2
-input /app/test/test.txt
-output /app/test/test_result_1
-mapper ./mapper.sh -reducer ./reducer.sh
-file mapper.sh -file reducer.sh
-jobconf mapred.reduce.tasks=2
-jobconf mapre.job.name="sep_test"
$ hadoop fs -cat /app/test/test_result_1/part-00000
1,2 1,1,1
1,2 2,1,1
1,2 3,1,1
$ hadoop fs -cat /app/test/test_result_1/part-00001
1,3 1,1,1
1,3 1,1,1
1,3 2,1,1
1,3 2,1,1
1,3 3,1,1
1,3 3,1,1