gpt4 book ai didi

resources - 什么控制向应用程序分配多少Spark集群?

转载 作者:行者123 更新时间:2023-12-04 03:37:19 27 4
gpt4 key购买 nike

https://spark.apache.org/docs/latest/job-scheduling.html文档的静态分区页面上,它说“使用这种方法,将为每个应用程序提供可以使用的最大资源量”。

我只是想知道,这些最大的资源是什么?我发现每个执行程序的内存设置(在动态分区中刚刚在下面提到),我认为这限制了应用程序获取的内存资源。但是决定启动多少执行程序/使用集群中多少节点的决定因素是总的群集内存和被“占用”的核心?

在另一个类似的说明中,是否有一种方法可以更改每个作业或任务级别所需的内存?

最佳答案

资源的数量取决于所使用的集群管理器,因为不同的集群管理器将提供不同的分配。

例如,在独立模式下,Spark将尝试使用所有节点。 spark.max.cores将控制作业跨节点总共使用多少个内核。如果未设置,Spark将使用spark.deploy.defaultCores spark.deploy.defaultCores 的文档进一步阐明了其用法:

Default number of cores to give to applications in Spark's standalone mode if they don't set spark.cores.max. If not set, applications always get all available cores unless they configure spark.cores.max themselves. Set this lower on a shared cluster to prevent users from grabbing the whole cluster by default.



在Mesos粗粒度模式下,Spark默认会分配所有可用核心。使用 spark.max.cores限制每个作业的数量。

在Mesos细粒度模式下,Spark将根据作业需要为每个任务分配一个核心,然后释放它们。这样可以确保合理使用,但要付出更高的任务分配开销。

在YARN中,按照 documentation:

The --num-executors option to the Spark YARN client controls how many executors it will allocate on the cluster, while --executor-memory and --executor-cores control the resources per executor.



关于内存,无法使用 spark.executor.memory来设置每个作业或任务的总内存,仅针对每个执行者。分配给您的工作的内存将为 spark.executor.memory x #executors

关于resources - 什么控制向应用程序分配多少Spark集群?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27944948/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com