2021SC@SDUSC
目录
1.SparkContext概述
Spark Driver 用于提交用户应用程序,实际可以看作Spark的客户端。所以了解Spark Driver的初始化可以帮助我们理解用户应用程序在客户端的处理过程。
Spark Driver的初始化始终围绕着SparkContext的初始化。SparkContext可以算得上是所有Spark应用程序的发动机引擎,轿车想要跑起来,发动机首先要启动。SparkContext初始化完成,才能向Spark集群提供任务。比如在平坦的公路上,发动机只需以较低的转速、较低的功率就可以游刃有余;在山区,你可能需要一台能够提供大功率的发动机才能满足你的需求。这些参数都是驾驶员操纵油门、档位等传送给发动机的,而SparkContext的配置参数则由SparkConf负责,SparkConf就是你的操作面板。
SparkConf的构造很简答,主要是通过ConcurrentHashMap来维护各种Spark的配置属性。SparkConf代码结构如下图所示
class SparkConf(loadDefaults:Boolean) extends Cloneable with Logging{
import SparkConf.
def this(0 = this(true)
private val settings = new ConcurrentHashMap[String, String] ()
if (loadDefaults){
//加载任何以spark . 开头的系统属性
for ((key, value) <- Utils.getSystemProperties if key.startsWith