SparkContext初始化会主要涉及到以下内容:
1. Spark Env的初始化
2. 启动一个Task Scheduler
3. 启动DAG Scheduler
4. 启动schedule backend
5. Web UI
初始化env:
// Create the Spark execution environment (cache, map output tracker, etc)
_env = createSparkEnv(_conf, isLocal, listenerBus)
SparkEnv.set(_env)
初始化TaskScheduler, backend, dagScheduler:
val (sched, ts) = SparkContext.createTaskScheduler(this, master, deployMode)
_schedulerBackend = sched
_taskScheduler = ts
_dagScheduler = new DAGScheduler(this)
_heartbeatReceiver.ask[Boolean](TaskSchedulerIsSet)
当然SparkContext在初始化时还会做很多事情,主要就是配置信息,scheduler, tracker,心跳机制等等初始化。
其中TaskScheduler, DAGScheduler在作业提交时起到很大作用