可以在hadoop中有一个场景,其中只有1个map任务和0个reduce任务?

时间:2014-08-16 23:24:59

标签: hadoop mapreduce

我知道Map-phase的结果是一个中间结果,它将成为reduce-phase的输入。

最近,我在hadoop权威指南中读到" Map-tasks的结果存储在磁盘中(即不在HDFS中,因为它们是中间结果)并且只有Reduce-phase的结果是存储在HDFS中"。

所以,通过上面的句子我的理解是如果有Map-task那么应该还有一个reduce任务。因为map-task的结果只是一个中间结果并将这些结果存储到HDFS中,所以应该有一个reduce-task 。我的理解是否正确?

如果我的理解是错的,那么任何人都可以给我一个可以有1个地图任务和0个减少任务的场景吗?

3 个答案:

答案 0 :(得分:0)

在Map Reduce中,并非所有减速器阶段都需要。在转换中,需要转换输入,不需要reducer。

在这些情况下,不会将reducers定义为0,或者-reducer选项将设置为None。在这些情况下,映射器输出将存储在HDFS中。

答案 1 :(得分:0)

是的,当零减少器时,map任务的输出不是中间输出而是最终输出。在这种情况下,不会进行改组,分区。映射器的纯输出写入磁盘。

答案 2 :(得分:0)

为了未来读者的利益: 在hadoop生态系统(2.7.1 - Tez执行框架)我工作的是从Flatfile,数据库和CloudApps(如salesforce)读取数据的提取作业到HDFS,它们不执行任何转换,只有Map任务和没有reduce任务。并且在设置中没有强制执行默认缩减器。