2013-03-17 32 views
1

要计算作业跟踪器将创建的mappers的数量很容易理解。它基本上是hdfs文件的大小除以分割大小。因此,如果hdfs文件的大小为640MB,分割为64MB,则作业跟踪器将创建10个映射器。但是有时创建的mappers的数量比你期望的要多。当作业完成后,我会查看屏幕上的相片,以了解创建的制图人数。在hadoop中创建的mappers的数量

我的问题是以下几点:是否可以理解为什么更多的映射器创建,也许通过查看不同的日志?

注意:我有一个地图缩减工作和相同的工作,当在不同的时间执行报告不同的地图工作者。尽管创建的额外映射器并不是很大。

+1

什么是您的输入格式,什么是文件压缩(如果有的话),以及在观察波动的映射器计数的每次运行之间文件的数量是否不变(基本上,您不应该看到可变数量的映射器如果作业调用之间的文件保持不变) – 2013-03-17 00:35:32

+1

输入格式为文本,不压缩。只有一个文件很庞大。我认为创建的最小映射器的数量等于文件大小/输入分割大小。 – 0xhacker 2013-03-17 03:22:48

回答

1

我在阅读作业跟踪器生成的日志后发现,额外的映射器是在已经分配的映射器需要很长时间才能完成时创建的,这些映射器只是散布者。

Hadoop的分配时,这样的任务,但它确实是如下: attempt_200707121733_0002_m_000005_1

这意味着作业服务器目前正试图分配五号地图任务作业2月1日任务的尝试。任务尝试从0开始。

+0

这被称为投机执行。更多细节[这里](http://adhoop.wordpress.com/2012/02/24/speculative-execution-in-hadoop/)和[这里](https://www.inkling.com/read/hadoop-明确的导-TOM - 白 - 第三/章节-6 /任务执行)。 – 2013-03-18 01:44:53