Wordcount:每个块超过1个地图任务,关闭推测执行

时间:2013-09-11 17:18:26

标签: hadoop mapper input-split

在Wordcount中,似乎每个块可以获得超过1个地图任务,并且关闭推测执行。

jobtracker是否在幕后做了一些神奇的工作来分配比InputSplits更多的任务?

2 个答案:

答案 0 :(得分:2)

Block和Splits是两回事。如果该块具有多个Splits,则可能会为一个块获取多个映射器。

答案 1 :(得分:0)

答案就在于Hadoop InputFormats的工作方式:

IN HDFS:

让我们举一个例子,其中块大小为1MB,HDFS的输入文件大小为10MB,最小分割大小为> 1MB。 1MB

1)首先,将文件添加到HDFS。

2)将文件拆分为10个块,每块大小为1MB。

3)然后,输入分配器读取每个1MB块。

4)由于1MB块比较小,所以MIN_SPLIT_SIZE,HDFS一次处理1MB,没有额外分割。

故事的寓意:如果你的分割低于最小分割大小,FileInputFormat实际上会为你做额外的分割。

我想我完全忘记了这一点,但回头看,这从一开始就是hadoop的一个特色。许多生态系统工具使用输入格式在运行时任意拆分块的能力以特定于应用程序的方式分配负载。

这里很棘手的部分是这样的事实:在玩具mapreduce作业中,在所有情况下都会期望每个分割一个块,然后在真实的群集中,我们忽略了拆分默认大小参数,除非你是使用大文件。