将hadoop流作业的输出发送到stdout

w6mmgewl  于 2021-06-02  发布在  Hadoop
关注(0)|答案(1)|浏览(314)

对于流式处理作业,必须指定输出目录。如果我想把Map器的结果输出到stdout而不是hdfs目录呢。这可能吗?我想这样做,以便我可以管道到其他程序。

7y4bm7vi

7y4bm7vi1#

我在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,那么问题是:如何处理由多个Map器生成的输出?
这里有一个想法:为什么不在这里“顺其自然”?让输出转到hdfs。添加totalorderpartitioner缩减器以合并所有输出文件。然后对输出结果执行hdfs-cat。

相关问题