如果输入文件大小为 200MB,则将有 4 个块/输入拆分,但每个数据节点上都会运行一个映射器。如果所有 4 个输入拆分都在同一个数据节点中,那么只会执行一个 map 任务?
或者地图任务的数量如何取决于输入拆分?
Task Tracker 是否会在集群中的所有数据节点上运行,而 Job Tracker 是否会在集群中的一个数据节点上运行?
问问题
127 次
1 回答
0
地图的数量完全取决于分裂的数量,而不是块/分裂的位置。因此,对于您的情况,它将是 4。正如您在一个节点中所说的那样,您还必须考虑在不同的节点中会有这些块的副本。现在有了 map-reduce 处理的概念,即 hadoop 想要利用的“数据局部性”。这里要考虑的另一件事是资源的可用性。因此,对于要执行的块(所有块的副本,通常为 3 个),hadoop 将找到一个数据节点,其中该块存在并且资源可用。因此,它可能会出现您描述的情况,其中一个节点中存在 4 个块的副本,并且它具有 map-reduce 所需的资源。但是地图任务将是4,这是肯定的。
于 2016-08-19T15:24:20.560 回答