SparkContext是所有spark程序的引擎,它的配置参数由SparkConf负责。SparkConf内部主要是通过ConcurrentHashMap来维护Spark配置属性。
SparkContext的初始化步骤如下:
1.创建Saprk执行环境SparkEnv;
2.创建RDD清理器metadataCleaner;
3.创建并初始化SparkUI;
4.Hadoop相关配置及Executor环境变量的设置;
5.创建任务调度TaskScheduler;
6.创建和启动DAGscheduler;
7.TaskScheduler的启动;
8.初始化模块管理器BlockManager;
9.启动测量系统MetricsSystem;
10.创建和启动Executor分配管理器ExecutorAllocationManager;
11.ContextCleaner的创建与启动;
12.Spark环境更新;
13.创建DAGSchedulerSource和BlockManagerSource;
14.将SparkContext标记为激活;
在SparkContext中,通过createTaskScheduler方法来创建一个Taskscheduler,利用模式匹配,来生成TaskschedulerImpl和不同环境下的SchedulerBackend。
TaskschedulerImpl源码给出的解释如下:
1.顶层通过操作一个SchedulerBackend,针对不同类的cluster(standalone,yarn,mesos),调度taskÿ