[英]hadoop - Map reduce on multiple cluster
我已经配置了Hadoop集群。 我有两台机器MA和MB当我使用以下代码运行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"
其中:mapper - C:\\ Python33 \\ mapper.py和reducer C:\\ Python33 \\ redu.py在MB的本地磁盘中
UPDATE
最后,我已经找到了错误。
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
mapper - C:\\ Python33 \\ mapper.py和reducer 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))
如果映射输入文件小于dfs.block.size
则每个作业运行时最终只有一个任务。 对于小输入,您可以强制Hadoop以mapred.max.split.size
值(小于dfs.block.size
运行多个任务。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.