Hadoop クラスターを構成しました。MAとMBの 2 台のマシン があります。次のコードを使用して mapreduce プログラムを実行すると、
hadoop jar /HDP/hadoop-1.2.0.1.3.0.0-0380/contrib/streaming/hadoop-streaming-1.2.0.1.3.0.0-0380.jar -mapper "python C:\Python33\mapper.py" -reducer "python C:\Python33\redu.py" -input "/user/XXXX/input/input.txt" -output "/user/XXXX/output/out20131112_09"
where : mapper - C:\Python33\mapper.py と reducer C:\Python33\redu.py は MB のローカル ディスクにあります
アップデート
最後に、エラーを追跡しました。
MA - エラーログ
stderr logs
python: can't open file 'C:\Python33\mapper.py': [Errno 2] No such file or directory
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess failed with code 2
マッパー - C:\Python33\mapper.py とレデューサー C:\Python33\redu.py は MA のローカル ディスクにあり、 MB単位ではありません
今、m/r プログラムをMAにコピーする必要がありますか、またはこれをどのように解決しますか?
マッパー
import sys
for line in sys.stdin:
line = line.strip()
keys = line.split()
for key in keys:
value = 1
print( '%s \t %d' % (key, value))