先放上命令:
hadoop jar /usr/hadoop-1.2./contrib/streaming/hadoop-streaming-1.2..jar -mapper mapper.py -file mapper.py -reduce reduce.py -file reduce.py -file params.txt -file params2.txt -input /data/* -output /output
其中output不存在才可以。
mapper.py的输出直接传给reduce.py
比如在hadoop的集群中,/data/目录下有如下几个文件:
[root@master program]# hadoop fs -ls /data/
Found items
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
-rw-r--r-- root supergroup -- : /data/cars-
对于任何一个文件,如果在本地可以这样完成操作即可:
cat cars- | ./mapper.py | ./reduce.py