当先锋百科网

首页 1 2 3 4 5 6 7
  • 配置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属性