首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hadoop -映射在多集群上的约简

hadoop -映射在多集群上的约简
EN

Stack Overflow用户
提问于 2013-11-12 12:04:44
回答 1查看 656关注 0票数 0

我已经配置了Hadoop集群。使用以下代码运行mapreduce程序时,im有两台机器MAMB

代码语言:javascript
复制
 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和减速器C:\Python33\redu.py在MB的本地磁盘

更新

最后,我找到了错误。

MA-错误日志

代码语言:javascript
复制
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,或者如何解决这个问题?

Mapper

代码语言:javascript
复制
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))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-12 13:01:02

如果映射输入文件小于dfs.block.size,那么每个作业只运行一个任务。对于较小的输入,可以强制Hadoop以字节为单位运行多个任务( mapred.max.split.size值小于dfs.block.size )。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19928671

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档