yarn-client模式下如何控制运行个executor?
How to control how many executors to run in yarn-client mode?
我有一个包含 5 个节点的 Hadoop 集群,其中 Spark 在 yarn-client
模式下运行。
我使用 --num-executors
作为执行者的数量。我能得到的执行者的最大数量是 20。即使我指定更多,我也只能得到 20 个执行者。
可分配的执行者数量是否有上限?是配置还是根据可用资源决定?
显然您的 20 个 运行 执行程序占用了所有可用内存。您可以尝试使用 spark.executor.memory
参数减少 Executor 内存,这应该为其他 executor 产生更多空间。
另外,你确定你设置的执行者编号是正确的吗?您可以通过查看“环境”选项卡中的 spark.executor.instances
值,从 Spark UI 视图中验证您的环境设置。
编辑: 正如 Mateusz Dymczyk 在评论中指出的那样,执行程序数量有限可能不仅是由于过度使用 RAM 内存造成的,还可能是 CPU 个内核造成的。在这两种情况下,限制都来自资源管理器。
我有一个包含 5 个节点的 Hadoop 集群,其中 Spark 在 yarn-client
模式下运行。
我使用 --num-executors
作为执行者的数量。我能得到的执行者的最大数量是 20。即使我指定更多,我也只能得到 20 个执行者。
可分配的执行者数量是否有上限?是配置还是根据可用资源决定?
显然您的 20 个 运行 执行程序占用了所有可用内存。您可以尝试使用 spark.executor.memory
参数减少 Executor 内存,这应该为其他 executor 产生更多空间。
另外,你确定你设置的执行者编号是正确的吗?您可以通过查看“环境”选项卡中的 spark.executor.instances
值,从 Spark UI 视图中验证您的环境设置。
编辑: 正如 Mateusz Dymczyk 在评论中指出的那样,执行程序数量有限可能不仅是由于过度使用 RAM 内存造成的,还可能是 CPU 个内核造成的。在这两种情况下,限制都来自资源管理器。