如何控制在yarn-client模式下运行的执行程序数量?

时间:2015-09-04 06:55:39

标签: apache-spark yarn

我有一个包含5个节点的Hadoop集群,其中Spark以yarn-client模式运行。

我使用--num-executors作为执行者的数量。我能够获得的最大执行程序数是20.即使我指定了更多,我只能获得20个执行程序。

可以分配的执行者数量是否有上限?是配置还是根据可用资源做出决定?

1 个答案:

答案 0 :(得分:2)

显然,您的20个正在运行的执行程序会占用所有可用内存。您可以尝试使用spark.executor.memory参数减少Executor内存,这应该为其他执行程序生成更多的位置。

另外,您确定正确设置了执行者编号吗?您可以通过查看“环境”选项卡中的spark.executor.instances值来验证Spark UI视图中的环境设置。

编辑:正如Mateusz Dymczyk在评论中指出的那样,有限数量的执行程序可能不仅是由过度使用的RAM内存引起的,而且也是由CPU内核引起的。在这两种情况下,限制都来自资源管理器。