kubernetes 有没有办法在运行时通过程序而不是动态分配来放大和缩小spark应用程序中的执行器?

gudnpqoy  于 2023-03-12  发布在  Kubernetes
关注(0)|答案(1)|浏览(75)

我在kubernetes环境下运行我的应用程序。我有一个限制,我不能去动态分配,因为它会引入大量的运行时变量到应用程序运行示例,如 Shuffle ,GC等。我想启动Spark应用程序与最小数量的执行器。基于某些参数和观察者(可以在这里包含Spark侦听器来收集负载指标),我想在不重新启动Spark作业的情况下增加或减少执行器计数。
有没有办法在kubernetes集群上的spark running中实现这一点?

ttcibm8c

ttcibm8c1#

是的,你可以通过在运行时设置conf(spark.executor.instances)并重新启动spark上下文来完成:

from pyspark import SparkContext, SparkConf
conf = SparkConf().setAppName("my_app").set("spark.executor.instances", "3")
sc = SparkContext(conf=conf)
...
conf.set("spark.executor.instances", "6")
sc.stop()
sc = SparkContext(conf=conf)

相关问题