集群的映射器估计

Estimation Of Mappers for a cluster

需要对 Hadoop 集群中特定作业的映射器估计进行一些说明。根据我的理解,映射器的数量取决于用于处理的输入拆分。但如果我们要对已经驻留在 HDFS 中的输入数据进行处理,情况就是如此。在这里,我需要澄清有关由 SQOOP 作业触发的映射器和缩减器。多氟溴联苯..

  1. 如何根据 RAM 或输入 splits/blocks 估计专用集群的映射器计数?(一般)

  2. 如何根据输入大小估算用于从 RDBMS 检索数据到 HDFS 的 sqoop 作业的映射器计数?(基于 Sqoop)

  3. 核心 CPU 是什么意思,它如何影响可以 运行 并行的映射器的数量?(一般)

谢谢。

需要对 Hadoop 集群中特定作业的映射器估计进行一些说明。根据我的理解,映射器的数量取决于用于处理的输入拆分。但如果我们要对已经驻留在 HDFS 中的输入数据进行处理,情况就是如此。在这里,我需要澄清有关由 SQOOP 作业触发的映射器和缩减器。多氟溴联苯..

  1. 如何根据 RAM 或输入 splits/blocks 估计专用集群的映射器计数?(一般)

回答:不,它与 RAM 大小无关。这完全取决于输入拆分的数量。

  1. 如何根据输入大小估算用于从 RDBMS 检索数据到 HDFS 的 sqoop 作业的映射器计数?(基于 Sqoop)

回答:默认情况下,Sqoop 作业的映射器数量为 4。您可以使用 -m (1,2,3,4,5...) 或 --num-mappers 参数更改默认值,但是你必须确保你的数据库中有主键或者你正在使用 -split-by 参数,否则只有一个映射器 运行ning 并且你必须明确地说 -m 1.

  1. 核心 CPU 是什么意思,它如何影响可以 运行 并行的映射器的数量?(一般)

回答:CPU 中的核心是可以运行 执行任务的处理单元。当您说 4 核处理器时,这意味着它可以 运行 一次处理 4 个任务。核心数不参与mapreduce框架计算映射器数。但是是的,如果有 4 个核心并且 mapreduce 计算映射器的数量为 12,那么一次 4 个映射器将 运行ning 并行,然后其余的将 运行ning 串行。

  1. 如何根据 RAM 或输入 splits/blocks 估计专用集群的映射器计数?(一般)

    你是对的。 映射器的数量通常基于输入中 DFS 块的数量。

  2. 如何根据输入大小估算用于从 RDBMS 检索数据到 HDFS 的 sqoop 作业的映射器计数?(基于 Sqoop)

    默认情况下,Sqoop 将使用四个任务并行处理 import/export 数据。

    您可以使用 -m <number of mappers> 选项更改此设置。 参考:Sqoop parallelism

  3. 核心 CPU 是什么意思,它如何影响可以 运行 并行的映射器的数量?(一般)

    CPU cores 是处理单元。简单来说 "More the Cores the better.",也就是说,如果我们有更多的核心,它可以更并行地处理。

    示例:如果您有 4 个核心,则 4 个映射器可以 运行 并行。(理论上!)