hadoop mapredceMap输出

qcuzuvrc  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(311)

最近我读到map任务将其输出写入本地磁盘而不是hdfs。当我在伪分布式模式下尝试一个示例mapreduce代码时,它只包含map函数而没有reducer,我发现输出被写到hdfs中。为什么会这样?有人能解释一下这种情况吗?

8wtpewkr

8wtpewkr1#

在正常的mapreduce作业中,只有reducer输出被写入hdfs,map输出/中间数据被写入磁盘。hdfs中的输出文件将等于no of reducer。
如果我们没有减速机,即job.setnumreducetasks()设置为0时。没有减速器将运行,Map输出将写入hdfs,并且输出文件将等于没有Map器。
希望这能回答你的问题。

xxb16uws

xxb16uws2#

高层次的思想是将mapreduce作业的最终输出写入hdfs,以便它可以用于其他目的,而任何中间数据(即map作业的输出)都写入local(以避免hdfs中数据复制的开销),然后这些数据被reducer用于生成最终输出
所以在这里,还原数是0,Map器的输出是最终输出,因此被写入hdfs。

相关问题