spark监控调优
一、Spark运行时架构:
Spark分布式结构采取 主/从 结构模式。主是驱动器(Driver)节点,这个节点负责中央协调,调度各个工作(执行器executor)节点。
从是执行器(executor)节点。
Spark驱动器节点和执行器节点统称为Spark应用。Spark应用通过集群管理器在集群的机器上启动。
二、驱动器和执行器的任务:
驱动器任务:负责运行组成Spark作业的任务;
执行器任务:为要求缓存的RDD提供内存式存储。
三、集群管理器
Cluster Manager可以用来启动驱动器节点、执行器节点。一般来说,包含以下的集群管理器:Hadoop Yarn,Apache Mesos,Spark自带的集群管理器。
四、spark-submit的格式:
/bin/spark-submit [options]
五、Spark性能调优:
如何调优和调试生产环境中的Spark工作负载。
1.调整Spark应用的运行时配置选项。通过SparkConf类对Spark进行配置。
val conf = new SparkConf()
conf.set("spark.app.name","My Spark App")
conf.set("spark.master","local[4]")
conf.set("spark.ui.port","36000")
val sc = new SparkContext(conf)
2.在提交任务给spark-submit时,可以通过--conf 选项来。
例如bin/spark-submit --class com.vip.SimpleClass --master local[4] --name "My Spark App" --conf spark.ui.port=36000 myapp.jar
3.通过spark-submit的--properties-file标记来指定配置文件的路径:
spark-submit --class com.vip.SimpleClass --properties-file my-config.conf
既然上边介绍了3种不同的方法来设置参数,所以如果在3个情况都配置之后,会发生冲突,那么这3种方式有一个优先级区别。优先级从高到低分别是1,2,3。如果冲突时,以第1种为准。