在 EMR 上使用 fat jar 进行 Spark 时覆盖配置设置

dvi*_*vir 4 amazon-emr typesafe-config apache-spark

我正在编写一个 Spark 应用程序,并使用 sbt 程序集创建一个 fat jar,我可以将其发送到 Spark-submit(通过 Amazon EMR)。我的应用程序使用 typesafe-config,并reference.conf在我的resources目录中包含一个文件。我的 jar 位于 Amazon S3 上,我使用该命令aws emr add-steps..创建一个新的 Spark 作业(该作业将 jar 下载到集群并将其发送到 Spark-submit)。我知道一般来说,我可以用来application.conf覆盖设置。然而,由于我使用 Spark (和一个 fat jar),我需要某种方法来部署我的覆盖。

使用 Spark 时覆盖应用程序配置设置的推荐方法是什么?

Mic*_*may 5

您可以使用spark-submit... --conf my.app.config.value=50 --conf config.file=other.conf ... fat.jar

当使用 typesafe.config.ConfigFactory.load() 时,命令行上指定的值将覆盖“other.conf”中指定的值,而“other.conf”中指定的值又会覆盖 fatjar 中“reference.conf”中指定的值。