Spark配置在运行时更改

Tia*_*rez 8 configuration-files apache-spark runtime-configuration

因此,询问是否有人知道在运行时更改Spark属性(例如spark.executor.memory,spark.shuffle.spill.compress等)的方法,以便更改可能在作业期间的任务/阶段之间生效. .

所以我知道......

1)Spark 2.0+(以及之前的版本)的文档声明,一旦创建了Spark上下文,就无法在运行时更改它.

2)SparkSession.conf.set可能会改变SQL的一些内容,但我正在研究更一般的,包罗万象的配置.

3)我可以使用新属性在程序中启动新的上下文,但这里的情况是在作业已经执行后实际调整属性.

想法...

1)杀死Executor会强制它再次读取配置文件,还是仅仅获取在作业开始时已配置的内容?

2)是否有任何命令强制在spark上下文中"刷新"属性?

所以希望可能有一种方式或其他想法(提前感谢)......

Den*_*din 0

不,不可能像spark.executor.memory在运行时那样更改设置。


此外,在“快速切换到新上下文”方面可能没有太多的技巧,因为 Spark 的优势在于它可以拾取数据并继续前进。您本质上需要的是一个映射缩减框架。当然,您可以将作业重写为这种结构,并将工作划分到多个 Spark 作业中,但这样您就会失去 Spark 带来的一些易用性和性能。(虽然可能不是全部)。

如果您确实认为该请求在概念层面上有意义,则可以考虑提出功能请求。这可以通过您的 Spark 供应商实现,也可以直接通过在 apache Spark 项目上记录 Jira 实现