Grep似乎不适用于hadoop流媒体
对于:hadoop jar /usr/local/hadoop-0.20.2/contrib/streaming/hadoop-0.20.2-streaming.jar -input/user/root/tmp2/user.data -output/user/root/selected_data -mapper '/ bin/grep 1938678460'-reducer'wc'-jobconf mapred.output.compress = false
我得到:java.lang.RuntimeException:PipeMapRed.waitOutputThreads():子进程失败,代码为1,位于org.apache.hadoop.streaming.PipeMapRed的org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.java:311). org.apache上的org.apache.hadoop.streamred.PipeMapper.close(PipeMapper.java:132)中的mapRedFinished(PipeMapRed.java:545)位于org.apache的org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)位于org.apache.hadoop.mapred.MapTask.run(MapTask.java)的org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)中的.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36) :307)在org.apache.hadoop.mapred.Child.main(Child.java:17
任何的想法?
我也尝试过:-mapper'cat'-reducer'/ bin/grep 1938678460'(猫工作,grep没有)
....我还检查了/ bin/grep在那里的所有机器,它确实存在
Grep不起作用,或者我遗失了什么?
xin*_*nit 17
我自己没有尝试过,但如果没有找到某些东西,grep会以非零退出代码退出.如果某个地图不包含您要使用的字符串,则会得到一个非零退出代码,并且hadoop会出错.也许像"/ bin/grep || true"这样的东西可行.
| 归档时间: |
|
| 查看次数: |
4398 次 |
| 最近记录: |