Spark应用开发如何设定配置生效

来源:互联网 发布:linux cp -f 编辑:程序博客网 时间:2024/04/28 22:57

在写Spark应用时,可以添加应用配置的地方有三个,今天总结下方便记忆:

第一个地方,也是生效优先级最高的地方,是在应用程序代码里设定配置,示例如下:

val conf = new SparkConf()             .setAppName("myApp")val sc = new SparkContext(conf)

第二个地方,是在提交应用时。因为有时候我们不想把配置参数写成hard code,所以可以在代码里创建一个空SparkConf对象,提交应用的时候通过--conf来添加配置参数:

./bin/spark-submit --name "myApp" --master yarn-client --conf spark.eventLog.enabled=false myApp.jar

第三个地方,可以在spark-env.sh里设置,其实就是添加程序的环境变量,具体可以设置哪些变量请参考spark-env.sh模版。注意,spark-env.sh是在spark集群启动时被调用,所以我的理解是这个针对standalone集群有效。

 还有一个变相的办法,可以自己写一个spark应用提交的脚本,在spark-submit执行前先设定好想赋值的环境变量,效果是一样的,这个应该更针对yarn-client或yarn-cluster模式。进一步猜测,如果把spark相关的环境变量设在yarn-env.sh里,重启yarn后提交spark应用是否有效?请路过的同学指正。

默认情况下,spark应用会自动加载$SPARK_HOME/conf/spark-default.properties。我们可以在spark-env.sh或者我们自己的启动脚本中通过SPARK_CONF_DIR改变默认的配置文件路径;也可以通过HADOOP_CONF_DIR 改变默认的HADOOP配置文件路径。

特别需要指出的是: Spark Standalone模式以及Mesos模式中,master的地址由"master"参数指定,而在YARN模式下,ResourceManager的地址从Hadoop配置得到。因此master参数是简单的yarn-client和yarn-cluster。



0 0
原创粉丝点击