将Hadoop流作业的输出发送到STDOUT



对于流作业,您必须指定输出目录。如果我想将映射器的结果输出到stdout而不是HDFS目录,该怎么办?这可能吗?我想这样做,这样我可以管道到其他程序

我在hadoop中写过很多流作业。不清楚您希望自定义管道在这里做什么。

让我们仔细看看,假设您用python编写了mapper/reducer(例如,将shell脚本从。py更改为。sh):

hadoop jar hadoop-*streaming*.jar 
-file mapper.py    -mapper mapper.py 
-input /user/myuser/input/* -output /user/myuser/output

在这种情况下,输出将到hdfs -这是您所说的而不是想要的。

因此,如果我们将输出发送到stdout -那么问题是:您如何处理由多个映射器生成的输出?我有个想法:为什么不"顺其自然"呢?让输出到hdfs。添加一个TotalOrderPartitioner reducer来组合所有的输出文件。然后对输出结果执行hdfs -cat。

最新更新