分布式环境下的apachespark性能调优

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

我希望在分布式环境中最大限度地提高hadoop的性能(使用ApacheSpark和yarn),并遵循cloudera博客文章中关于此配置的提示:

6 nodes, 16 core/node, ram 64G/node

建议的解决方案是: --num-executors 17 --executor-cores 5 --executor-memory 19G 但是我不明白为什么他们使用17个num执行器(换句话说,每个节点有3个执行器)。
我们的配置是:

8 nodes, 8 core/node, ram 8G/node

最好的解决方案是什么?

ui7jx7zq

ui7jx7zq1#

你的公羊很矮。我希望这个更高。
但是,我们从8个节点和8个核心开始。要确定最大执行器,我们需要节点*(cores-1)=56。从每个节点中减去1个用于管理的核心。
所以我会从56个执行器开始,1个执行器核心,1g内存。
如果你有内存不足的问题,加倍的ram,让执行器,向上的核心。28个执行器,2个执行器内核,2g ram,但您的最大执行器数将更少,因为一个执行器必须适合一个节点。您最多可以获得24个分配的容器。
我会先尝试3个核心,然后再尝试4个核心,因为3个核心可以在每个节点上容纳2个执行器,而4个核心的执行器与7个相同。
或者,你可以直接跳到。。。8个执行器,7个内核,7gig ram(希望为集群的其余部分保留一些)。
我还发现,如果cpu调度被禁用,那么yarn将覆盖我的cores设置,并且无论我的配置如何,它总是保持在1。还必须更改其他设置才能启用此功能。 yarn.schedular.capacity.resource-calculator=org.apache.hadoop.yarn.util.resource.DominantResourceCalculator

相关问题