我已经配置了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"

其中:映射器-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和reducer C:\ Python33 \ redu.py在MA的本地磁盘中,不在中MB 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))

最佳答案

如果 map 输入文件小于dfs.block.size,则每个作业运行仅结束一个任务。对于较小的输入,您可以强制Hadoop运行多个任务,且mapred.max.split.size的值(以字节为单位)小于dfs.block.size的字节。

07-24 19:59