将运行多少Map程序?

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

我有这个问题。假设我有3个datanode+nodemanager(集群)。我们的复制因子是3。在第一个集群中,我们得到了4个块,所以默认情况下,4个Map器将在第一个集群上并行运行。当复制因子为3时,我们将有12个Map器开始运行?

wqnecbli

wqnecbli1#

块的数目取决于文件大小。如果您有1gb的文件,使8块(128 mb)。
因此,现在所有8个块都将按照数据位置和机架感知进行三次复制—但这并不意味着对该文件运行任何作业时,所有24(8 x 3)个块都将得到处理。复制用于从磁盘故障类型的场景中恢复。
所以要回答你的问题:
Map器的数量=输入分割的数量(在大多数情况下是块的数量)。
群集上将只有8个Map程序在运行。hadoop将根据数据位置(在集群(节点)中最近的块位置)来决定这些Map器需要在哪个节点上运行。
如果为集群hadoop推测性任务执行启用了推测性执行,则情况会有所不同

相关问题