【摘要】:通过以上分析,总结起来可知,Spark中的配置项有若干个地方可以配置:通过文件配置;通过spark-submit在提交程序时配置;通过程序代码中的SparkConf硬编码配置。有些情况下,同样的配置项可能在这些不同的地方都做了配置,比如在程序中通过setAppName()设置了程序名,在spark-submit中也通过-name设置了程序名。程序硬编码中通过SparkConf对象的set()方法指定的配置项优先级最高,其次是spark-submit提交程序时通过-flag设置的配置项,然后是参数文件中的配置项,最后是默认值。
通过以上分析,总结起来可知,Spark中的配置项有若干个地方可以配置:通过文件(如conf/spark-defaults.confh)配置;通过spark-submit在提交程序时配置;通过程序代码中的SparkConf硬编码配置。有些情况下,同样的配置项可能在这些不同的地方都做了配置,比如在程序中通过setAppName()设置了程序名,在spark-submit中也通过-name设置了程序名。那么究竟哪个生效呢?这就涉及优先级问题。
程序硬编码中通过SparkConf对象的set()方法指定的配置项优先级最高,其次是spark-submit提交程序时通过-flag设置的配置项,然后是参数文件中的配置项,最后是默认值。
要想知道程序运行时配置项的具体值,可以查看程序运行的webUI。(www.xing528.com)
在spark-Shell交互式编程终端下,可以通过sc.getConf.toDebugString来查看SparkConf的值,通过sc.hadoopConfiguration.iterator()来获得Hadoop的配置信息。
需要说明的一点是,几乎所有的配置都可以通过SparkConf来配实现,但是有一个例外:SPARK_LOCAL_DIRS,该参数用来配置Spark的本地存储目录(这些目录在Shuffle时需要用到)。由于在具体的物理结点上该目录可能不同,需要在conf/spark-env.sh中通过export SPARK_LOCAL_DIRS到一系列逗号分隔的目录来配置该配置项。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。