Hadoop流grep不起作用

时间:2010-09-21 20:22:12

标签: streaming hadoop

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.waitOutputThreads(PipeMapRed.java:311)     在org.apache.hadoop.streaming.PipeMapRed.mapRedFinished(PipeMapRed.java:545)     在org.apache.hadoop.streaming.PipeMapper.close(PipeMapper.java:132)     在org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:57)     在org.apache.hadoop.streaming.PipeMapRunner.run(PipeMapRunner.java:36)     在org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:358)     在org.apache.hadoop.mapred.MapTask.run(MapTask.java:307)     在org.apache.hadoop.mapred.Child.main(Child.java:17

有什么想法吗?

我也尝试过: -mapper'cat'-reducer'/ bin / grep 1938678460'(猫工作,grep没有)

....我还检查了/ bin / grep在那里的所有机器,它是

Grep不起作用,或者我遗失了什么?

1 个答案:

答案 0 :(得分:17)

我自己没有尝试过,但如果没有找到某些内容,grep会以非零退出代码退出。如果某个地图不包含您要使用的字符串,则会得到一个非零退出代码,并且hadoop会出错。也许像“/ bin / grep || true”这样的东西可以工作。