hadoop中的输入拆分

20jt8wwn  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(281)

如果输入文件大小为200mb,则会有4个块/输入拆分,但每个数据节点上都会运行一个Map器。如果所有4个输入拆分都在同一个数据节点中,那么只执行一个map任务?
或者map任务的数量如何依赖于输入分割?
任务跟踪器是否会在集群中的所有数据节点上运行,作业跟踪器是否会在集群中的一个数据节点上运行?

vojdkbi0

vojdkbi01#

Map的数量完全取决于拆分的数量,而不是块/拆分的位置。所以你的情况是4。正如您所说的“一个节点中的所有数据块”,您还必须考虑到在不同的节点中会有这些数据块的副本。现在有了MapReduce处理的概念,hadoop希望利用的“数据局部性”。这里要考虑的另一件事是资源的可用性。因此,对于要执行的块(所有块的副本,通常为3),hadoop将找到一个datanode,其中存在块并且资源可用。因此,它可能会上升到您所描述的情况,4个块的副本存在于其中一个节点中,并且它拥有map reduce所需的资源。但Map任务将是4,这是肯定的。

相关问题