在 spark 代码管理 conf.setMaster() 中使用配置文件自动设置本地或 yarn-cluster

In spark code manage conf.setMaster() using a config file to autoset local or yarn-cluster

因此在开发 spark 程序时,我使用我的本地机器,因此必须将 setMaster 设置为 "local"。但是,当我提交从我本地开发的程序构建的 jar 时,我显然不想使用 "local" 模式。

我如何使用 typesafeconfig 在测试时设置 "local" 并在生产时设置 "yarn-cluster"?

编辑:

基于@Shaido 的解决方案,适用于 IDEA Intellij:

转到:运行->edir configurations->在应用程序配置集下: VM options = -Dspark.master=local[*]

理想情况下,yarn-cluster 或 local 应该作为带有 spark-submit 的命令行输入,而不是硬编码在代码中。你可以通过

spark-submit --master yarn --deploy-mode cluster in spark 2.1

如果您从集群提交,local如果您从本地提交。

如果您使用的是 IDE,则无需将 setMaster 硬编码到代码中。

对于 Eclipse,您可以转到 "Run configurations" -> "Arguments" -> "VM arguments" 并添加

-Dspark.master=local[*]

这将在本地 运行 时使用所有可用内核。其他 IDE 应该有类似的配置。这样,代码本身就不需要添加任何东西了。

集群上运行时,使用:

spark-submit --master yarn --deploy-mode cluster