如果输入文件大小为200MB,则会有4个块/输入拆分,但每个数据节点上都会运行一个映射器。如果所有4个输入拆分都在同一个数据节点中,则只执行一个映射任务?
或者地图任务的数量如何取决于输入分割?
任务跟踪器还将在群集中的一个数据节点上的所有数据节点和作业跟踪器上运行吗?
答案 0 :(得分:0)
地图数量完全取决于拆分的数量,而不取决于块/拆分的位置。所以对于你的情况,它将是4。 正如您在一个节点中所说的那样,您还必须考虑在不同节点中将存在这些块的副本。现在有了map-reduce处理的概念,hadoop希望利用的“数据局部性”。这里要考虑的另一件事是资源的可用性。因此,对于要执行的块(通常为3的副本),hadoop将找到存在块且资源可用的datanode。所以它可能会遇到你所描述的情况,其中一个节点中存在4个块的副本,并且它具有map-reduce所需的资源。但是地图任务将是4,这是肯定的。