- 配置spark系统有如下3中方法:
①spark属性:控制大多数应用程序参数,为每个应用程序设置不同的参数,通过使用SparkConf对象或者java系统属性
②环境变量:通过设置每个节点的conf/spark-env.sh文件满足每台机器的不同设置。
③日志:配置log4j.properties
例子:通过sparkconf设置应用程序的名称和线程数
方法一:在程序代码中写死sparkConf属性
val conf = new SparkConf().setMaster("local[2]").setAppName("countingsheep")
val sc = new SparkContext(conf)
方法二:创建空的conf对象,然后在spark-submit提交时,可以以--conf flag配置参数值或者读取conf/spark-defaults.conf文件中参数值
val sc = new SparkContext(new SparkConf())
./bin/spark-submit --name "My app" --master local[4] --conf spark.eventLog.enabled=false
--conf "spark.executor.extraJavaOptions=-XX:+PrintGCDetails -XX:+PrintGCTimeStamps" myApp.jar
或者在conf/spark-defaults.conf设置参数
spark.master spark://5.6.7.8:7077
spark.executor.memory 4g
spark.eventLog.enabled true
spark.serializer org.apache.spark.serializer.KryoSerializer
以上三种配置方法的优先级不同,SparkConf.属性设置的优先级最高,其次是spark-submit --conf flag,最后是参数配置文件。在早期spark版本总。若配置的key出现重名时,older key的名称仍然能接受,但要比new key实例的优先级有低
spark属性主要分为两种:一种是与部署相关,例如:spark.driver.memory和spark.executor.instances属性,在运行时,通过sparkconf设置是或许没影响,其主要取决于集群管理器和部署模式,这种类型参数最后是通过spark-submit或者文件配置方式设置;另外一种是与运行控制相关的,例如:spark.task.maxFailures,使用sparkconf方法设置。
- 可以通过http://<driver>:4040界面查看设置的park属性