在CLI中定义的Spark提交“ --master”与定义主模块的spark应用程序代码有什么区别?
在Spark中,我们可以在以下任一应用程序代码中指定主URI:
或者我们可以在spark-submit中指定主URI作为参数的参数,如下所示:
一个人比另一个人优越吗?他们是否必须通过合同达成一致,所以我在程序spark-submit和spark应用程序代码中引用了两个具有相同URI的实例,从而创建了SparkSession?一个会超越另一个吗? SparkSession对master参数有何不同之处,而spark-submit master参数有何不同之处?
任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
spark-submit脚本可以从属性文件加载默认的Spark配置值,并将其传递给您的应用程序。默认情况下,它将从Spark目录中的conf / spark-defaults.conf中读取选项。有关更多详细信息,请参阅有关加载默认配置的部分。
以这种方式加载默认的Spark配置可以避免某些标志需要提交火花。例如,如果设置了spark.master属性,则可以安全地从spark-submit省略--master标志。通常,在SparkConf上显式设置的配置值具有最高优先级,然后将标志传递给spark-submit,然后是默认文件中的值。
如果您不清楚配置选项的来源,则可以通过使用--verbose选项运行spark-submit来打印出细粒度的调试信息。
因此,所有选项都是有效的选项,如果在多个位置设置了相同的选项,则存在定义明确的优先级的层次结构。从最高到最低:
答案 1 :(得分:0)
从Spark文档中:
通常
让我印象最深刻的方法是将标志传递给spark-submit。