我有下面配置的Yarn集群。我正在使用spark进行跨集群操作。最多有五个并发的spark作业可以在任何时间点运行。目前,spark作业使用动态分配true属性执行,这有时会导致其他作业等待资源。我想将每个作业的资源分配固定为仅使用20%的群集资源。有人能帮我解决这个问题吗?主节点:内存:125 G核心数:32工作节点总数:45分配的RAM:每个节点24 GB(总共1080 GB RAM)分配的核心:每个节点8个内核(共360个内核)我尝试了多个内存配置,但仍然使用不正确的内存/核心。
qxgroojn1#
我想将每个作业的资源分配固定为仅使用群集的20%您可以将spark.dynamicAllocation.maxExecutors(默认值为无穷大)设置为匹配总资源的20%的值。例如,如果您总共有100个核心,您可以创建每个有5个核心的执行器,然后您将最大值设置为4。因此,您永远不会超过每个作业集群的20%。有关动态配置的更多信息,请访问https://spark.apache.org/docs/latest/configuration.html#dynamic-allocation
spark.dynamicAllocation.maxExecutors
1条答案
按热度按时间qxgroojn1#
我想将每个作业的资源分配固定为仅使用群集的20%
您可以将
spark.dynamicAllocation.maxExecutors
(默认值为无穷大)设置为匹配总资源的20%的值。例如,如果您总共有100个核心,您可以创建每个有5个核心的执行器,然后您将最大值设置为4。因此,您永远不会超过每个作业集群的20%。
有关动态配置的更多信息,请访问https://spark.apache.org/docs/latest/configuration.html#dynamic-allocation