Apache Spark调优分布式环境

时间:2016-02-10 14:02:50

标签: performance hadoop apache-spark yarn

我在分布式环境中最大化Hadoop性能(使用Apache Spark with Yarn),并且我在blog post of Cloudera上使用此配置跟踪提示:

--num-executors 17 --executor-cores 5 --executor-memory 19G

,建议的解决方案是: 8 nodes, 8 core/node, ram 8G/node

但我不明白为什么他们使用17个数字执行器(换句话说,每个节点有3个执行器)。

我们的配置是:

{{1}}

什么是最佳解决方案?

1 个答案:

答案 0 :(得分:1)

你的公羊很低。我希望这会更高。

但是,我们从8个节点和8个核心开始。为了确定我们的最大执行者,我们做节点*(cores-1)= 56.每个节点的负1个核心用于管理。

所以我会开始 56名遗嘱执行人,1名遗嘱执行人,1名公羊。

如果您的内存不足,请将内存加倍,使用执行程序,然后使用内核。 28个执行器,2个执行器核心,2G内存 但是你的最大执行者会少一些,因为执行者必须适合一个节点。您最多可以获得24个分配的容器

接下来我将在4个核心之前尝试3个核心,因为3个核心将在每个节点上容纳2个执行器,而4个核心将具有与7相同的执行器。

或者,你可以直接跳到...... 8个执行器,7个内核,7gig ram(想要为群集的其余部分留下一些)。

我还发现如果CPU Scheduling被禁用,纱线覆盖了我的核心设置,并且它总是保持在1,无论我的配置如何。还必须更改其他设置才能启用此功能。

yarn.schedular.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator