Spark客户端内存配置

Spark client memory configuration

我正在尝试 运行 Airflow(ETL 调度程序)上的多个 spark 客户端。

我运行在 YARN 上处于集群模式,因此 ApplicationMaster Executor 和 Driver 都运行在 Yarn 上下文中的执行器上。 但是,我对流程进行采样并监视状态的 spark 客户端在气流工作者中 运行ning。

问题是 Spark 客户端每个作业占用大量内存 ~500 MB。就执行者或驱动程序而言,这听起来可能并不多,但对于 spark 客户端的角色来说,这听起来很疯狂。

我的问题是,我如何 configure/manipulate spark 客户端 memory/cpu 要求我可以限制它的间隔?我可以用标志限制它的内存吗?

几天后找到答案。很高兴看到 Stack 社区无缘无故地对社区没有回答的合法问题投反对票,但我欠其他优秀的 Whosebug 成员。

所以在spark代码中它是区分运行独立模式还是集群模式的。对于独立,它设置默认值 -Xmx 1G,在集群模式下,它没有默认值,但它试图从名为 SPARK_SUBMIT_OPTS.

的环境变量中读取 java 选项

因此,如果您想设置任何 java 只选择 客户端 java 进程 使用 SPARK_SUBMIT_OPTS