Hadoop Mapredce Map输出

时间:2014-10-07 22:54:49

标签: hadoop hdfs

最近我读到了map任务将其输出写入本地磁盘而不是HDFS。当我在伪分布式模式中尝试使用Mapreduce代码并且只有map函数而没有reducer时,我发现输出被写入HDFS。为什么会这样? 任何人都可以解释这种情况吗?

2 个答案:

答案 0 :(得分:3)

高层次的想法是将mapreduce作业的最终输出写入HDFS,以便它可以用于其他目的,而任何中间数据,即map作业的输出都写入本地(以避免开销)在hdfs中复制数据)然后这个数据由Reducer使用以产生最终输出

因此,在减少器数量为0的情况下,映射器的输出是最终输出,因此写入HDFS。

答案 1 :(得分:2)

在正常的MapReduce作业中,只有Reducer输出被写入HDFS,Map输出/中间数据被写入磁盘.HDFS中的输出文件将等于redurs中的no。

如果我们没有缩减器,即 job.setNumReduceTasks() 设置为 0 。不会运行减速器,并且映射输出将写入HDFS,输出文件将等于映射器的数量。

希望这能回答你的问题。