因此,在开发 spark 程序时,我使用本地机器,因此必须将 master 设置为“本地”。但是,当我提交从本地开发的程序构建的 jar 时,我显然不想使用“本地”模式。
如何在测试时使用 typesafeconfig 设置“本地”,在生产时设置“yarn-cluster”?
编辑:
基于@Shaido 的解决方案,对于 IDEA Intellij:
转到:运行->编辑配置->在应用程序配置集下:
VM options = -Dspark.master=local[*]
因此,在开发 spark 程序时,我使用本地机器,因此必须将 master 设置为“本地”。但是,当我提交从本地开发的程序构建的 jar 时,我显然不想使用“本地”模式。
如何在测试时使用 typesafeconfig 设置“本地”,在生产时设置“yarn-cluster”?
编辑:
基于@Shaido 的解决方案,对于 IDEA Intellij:
转到:运行->编辑配置->在应用程序配置集下:
VM options = -Dspark.master=local[*]
如果您使用的是 IDE,则无需硬编码setMaster
到代码中。
对于 Eclipse,您可以转到“运行配置”->“参数”->“VM 参数”并添加
-Dspark.master=local[*]
这将在本地运行时使用所有可用的内核。其他 IDE 应该有类似的配置。这样,无需向代码本身添加任何内容。
在集群上运行时,使用:
spark-submit --master yarn --deploy-mode cluster
理想情况下,yarn-cluster 或 local 应该作为带有 spark-submit 的命令行输入,而不是在代码中硬编码。你可以通过
spark-submit --master yarn --deploy-mode cluster in spark 2.1
如果您是从集群提交并且local
是从本地提交。