在 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
因此在开发 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