pyspark Yarn和Spark参数如何相互作用?

798qvoo8  于 2022-11-28  发布在  Spark
关注(0)|答案(1)|浏览(108)

有一些参数决定了yarn可以通过容器分配的内存和cpu的最大值、最小值和总数
例如:
yarn.nodemanager.resource.memory-mb
yarn.scheduler.maximum-allocation-mb
yarn.scheduler.minimum-allocation-mb
yarn.nodemanager.resource.cpu-vcores
Yarn.调度程序.最大分配-vcore
Yarn.调度器.最小分配-vcore
还有一些Spark侧参数似乎可以控制类似的分配:
spark.executor.instances
spark.executor.memory
spark.executor.cores
等等
当两组参数根据对方设定的界限都不可行时会发生什么。例如:如果yarn.scheduler.maximum-allocation-mb被设置为1G,而spark.executor.memory被设置为2G,会怎么样?对于其他参数,也可以想象出类似的冲突和不可行性。
在这种情况下会发生什么?以及,建议如何设置这些参数?

sgtfey8w

sgtfey8w1#

When running Spark on YARN, each Spark executor runs as a YARN container
以spark.executor.memory为例:

  • 如果spark.executor.memory是2G,yarn.scheduler.maximum-allocation-mb是1G,那么你的容器将是OOM杀手
  • 如果spark.executor.memory是2G,yarn.scheduler.minimum-allocation-mb是4G,那么您的容器比Spark应用程序所需的要大得多

设置参数的建议取决于您的硬件资源和此计算机上运行的其他服务。您可以先尝试使用默认值,然后通过监视计算机资源进行调整

相关问题