对于流式处理作业,必须指定输出目录。如果我想把Map器的结果输出到stdout而不是hdfs目录呢。这可能吗?我想这样做,以便我可以管道到其他程序。
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。
1条答案
按热度按时间7y4bm7vi1#
我在hadoop中写了很多流媒体工作。不清楚您希望自定义管道在这里做什么。
让我们仔细看看,假设您用python编写了mapper/reducer(例如,shell脚本从.py改为.sh):
在这种情况下,输出是去hdfs-这是你说你不想要的。
因此,如果我们将输出发送到stdout,那么问题是:如何处理由多个Map器生成的输出?
这里有一个想法:为什么不在这里“顺其自然”?让输出转到hdfs。添加totalorderpartitioner缩减器以合并所有输出文件。然后对输出结果执行hdfs-cat。