Hadoop 使用 Python 来写 map-reduce

Hadoop 使用python 来写 map-reduce, 关键就是利用标准输入和输出, 确切来说就是:

import sys

for line in sys.stdin
    pass()

print "stdout"
sys.stdin 和 print 两个函数


写好了mapper.py 和 reducer.py 两个python 文件后, 用命令行来调用:

./hadoop jar $HADOOP_HOME/share/hadoop/tools/lib/hadoop-streaming-*.jar \
-files /home/mapper.py,/home/reducer.py \
-input sample.txt \
-output output \
-mapper /home/mapper.py \
-reducer /home/reducer.py

注意 -input 和 -output 指的都是hdfs里的路径, 所以要先把输入的sample.txt 用hadoop fs -put 放到hdfs里, -mapper -combiner -reducer指的都是操作系统里的路径, 把 mapper.py 和 reducer.py放到相应路径里去就好了

posted @ 2017-10-17 16:46  爱知菜  阅读(12)  评论(0编辑  收藏  举报