首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hadoop流的组合器hack

hadoop流的组合器hack
EN

Stack Overflow用户
提问于 2012-02-27 15:21:07
回答 1查看 959关注 0票数 2

当前版本的hadoop-streaming需要一个用于组合器的Java类,但我在某处读到我们可以使用如下所示的技巧:

代码语言:javascript
复制
hadoop jar ./contrib/streaming/hadoop-0.20.2-streaming.jar  -input /testinput -output /testoutput -mapper "python /code/triples-mapper.py | sort | python /code/triples-reducer.py" -reducer /code/triples-reducer.py 

然而,这似乎不起作用。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-30 19:32:04

我怀疑你的问题出在下面的某个地方:

http://svn.apache.org/viewvc/hadoop/common/tags/release-0.20.2/src/contrib/streaming/src/java/org/apache/hadoop/streaming/PipeMapRed.java?view=markup

第69行splitArgs()方法,该方法用于标记您传递的命令:

python /code/triples-mapper.py | sort | python /code/triples-reducer.py

放入要运行的命令:/code/triples-mapper.py (131/132行),然后传入一组参数。所有令牌都被传递给ProcessBuilder (第164行)

Java Api for ProcessBuilder

所以你的管道没有被操作系统解释,更多的是作为参数传递给你的映射器(你应该能够通过转储你的映射器代码中传递的args来确认这一点)

这都是为了0.20.2,所以可能已经在更高版本的hadoop中进行了“修复”,以满足您的目的。

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

https://stackoverflow.com/questions/9461326

复制
相关文章

相似问题

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