【问题标题】:Spark configuration prioritySpark 配置优先级
【发布时间】:2018-02-16 00:36:21
【问题描述】:

在代码中指定spark应用配置有什么区别或优先级吗:

SparkConf().setMaster(yarn)

并在命令行中指定它们

spark-submit --master yarn

【问题讨论】:

    标签: apache-spark hadoop-yarn


    【解决方案1】:

    是的,使用 set() 函数的用户代码中的配置具有最高优先级。在那之后,标志通过 spark-submit 传递。

    直接在 SparkConf 上设置的属性具有最高优先级,然后是传递给 spark-submit 或 spark-shell 的标志,然后是 spark-defaults.conf 文件中的选项。自早期版本的 Spark 以来,一些配置键已被重命名;在这种情况下,旧的键名仍然被接受,但优先级低于新键的任何实例。

    Source

    【讨论】:

    • 应用程序运行时可以动态更改属性吗?
    • @VeeraMarni 这取决于属性。例如,您可以在同一 Spark 应用程序的作业之间动态更改 spark.sql.shuffle.partitions,但不能在 spark.executor.memoryspark.driver.cores 等... 遗憾的是,我不知道在哪里可以找到详尽的非动态配置列表,我也有兴趣找到一个!
    • @EnzoBnl 谢谢!
    【解决方案2】:

    有 4 个优先级:(1 到 4,1 为最高优先级):

    1. 应用程序中设置的 SparkConf
    2. spark-submit 提供的属性
    3. 可以在属性文件中给出属性。和 属性文件可以在提交时作为参数给出
    4. 默认值

    【讨论】:

      【解决方案3】:

      除了优先级之外,在命令行中指定它可以让您在不同的集群管理器上运行而无需修改代码。相同的应用程序可以在 local[n] 或 yarn 或 mesos 或 spark 独立集群上运行。

      【讨论】:

        猜你喜欢
        • 2019-09-17
        • 2015-06-15
        • 2015-12-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-10
        • 1970-01-01
        相关资源
        最近更新 更多