【发布时间】:2018-02-16 00:36:21
【问题描述】:
在代码中指定spark应用配置有什么区别或优先级吗:
SparkConf().setMaster(yarn)
并在命令行中指定它们
spark-submit --master yarn
【问题讨论】:
在代码中指定spark应用配置有什么区别或优先级吗:
SparkConf().setMaster(yarn)
并在命令行中指定它们
spark-submit --master yarn
【问题讨论】:
是的,使用 set() 函数的用户代码中的配置具有最高优先级。在那之后,标志通过 spark-submit 传递。
直接在 SparkConf 上设置的属性具有最高优先级,然后是传递给 spark-submit 或 spark-shell 的标志,然后是 spark-defaults.conf 文件中的选项。自早期版本的 Spark 以来,一些配置键已被重命名;在这种情况下,旧的键名仍然被接受,但优先级低于新键的任何实例。
【讨论】:
spark.sql.shuffle.partitions,但不能在 spark.executor.memory 或 spark.driver.cores 等... 遗憾的是,我不知道在哪里可以找到详尽的非动态配置列表,我也有兴趣找到一个!
有 4 个优先级:(1 到 4,1 为最高优先级):
【讨论】:
除了优先级之外,在命令行中指定它可以让您在不同的集群管理器上运行而无需修改代码。相同的应用程序可以在 local[n] 或 yarn 或 mesos 或 spark 独立集群上运行。
【讨论】: