在spark阶段动态添加机器

js4nwp54  于 2021-05-27  发布在  Spark
关注(0)|答案(1)|浏览(373)

我使用的是运行在azurevms上的spark独立集群版本2.3.0。Spark加工有5个阶段。我想在第0阶段之后添加更多计算机用于计算处理。
目前,我正在检查sparkapi的阶段完成情况。
spark 2.3.0中是否有可以启用的功能或属性??

siotufzp

siotufzp1#

在spark-on-yarn中,您可以通过以下设置启用动态分配

spark.dynamicAllocation.enabled     
spark.dynamicAllocation.minExecutors
spark.dynamicAllocation.maxExecutors
spark.dynamicAllocation.initialExecutors

如果您参考spark配置页面:动态资源分配spark提供了一种机制,可以根据工作负载动态调整应用程序占用的资源。这意味着您的应用程序可能会将不再使用的资源返回给集群,并在需要时再次请求它们。如果多个应用程序共享spark集群中的资源,则此功能特别有用。此功能在默认情况下被禁用,并且在所有粗粒度集群管理器上都可用,即独立模式、Yarn模式和mesos粗粒度模式。
文档链接:https://spark.apache.org/docs/2.2.0/job-scheduling.html#configuration-和设置
使用此功能有两个要求。首先,应用程序必须将spark.dynamicallocation.enabled设置为true。第二,您必须在同一集群中的每个工作节点上设置外部洗牌服务,并在应用程序中将spark.shuffle.service.enabled设置为true。
我不知道在azure上这有多容易处理,这里有一个关于emr上的动态资源的问题,没有直接的关系,但可以帮助您搜索。使用amazon的“maximizeresourceallocation”设置的spark+emr并不使用所有Core/vCore

相关问题