理解 spark --master

Understanding spark --master

我有一个简单的 spark 应用程序,可以从配置文件中读取 master:

new SparkConf()
  .setMaster(config.getString(SPARK_MASTER))
  .setAppName(config.getString(SPARK_APPNAME))

生病时会发生什么 运行 我的应用程序如下:

spark-submit --class <main class> --master yarn <my jar>

我的主人会被覆盖吗?

我更喜欢以标准方式提供 master,这样我就不需要在我的配置中维护它,但问题是我如何直接从 IDEA 运行 这个工作?这不是我的应用程序参数,而是 spark-submit 参数。

澄清一下,我想要的最终产品应该:
当 运行 在集群中使用 --master yarn 时,将使用此配置
当来自 IDEA 的 运行 将 运行 与本地 [*]

  1. 不要在代码中设置 master。
  2. 在生产中,您可以使用 spark-submit 的选项 --master,它会告诉 spark 使用哪个 master(在您的情况下是 yarn)。 spark-defaults.conf 文件中 spark.master 的值也将完成这项工作(优先级为 --master 然后是配置文件中的 属性)
  3. 在 IDEA 中...好吧,我知道在 Eclipse 中,您可以在 运行 配置 -Dspark.master=local[*] 中传递 VM 参数,例如 ()。 在 IDEA 中我认为它没有太大的不同,你可以检查 here 添加 VM 选项