创建监听总线
SparkContext中首先对SparkConf进行克隆
然后对克隆的SparkConf的配置进行检测,检测非法或废弃的配置信息,将弃用的配置信息转换成支持的配置信息
然后判断SparkConf中是否设置了master和app name,master用于设置部署模式,app name用于指定应用程序名称(很重要)
目录
获取Executor内存环境变量
注册HeartbeatReceiver心跳接收器
在 Spark 的实际生产环境中,Executor 是运行在不同的节点上的。在 local 模式下的 Driver 与 Executor 属于同一个进程,所以 Dirver 与 Executor 可以直接使用本地调用交互,当 Executor 运行出现问题时,Driver 可以很方便地知道,例如,通过捕获异常。但是在生产环境下,Driver 与 Executor 很可能不在同一个进程内,他们也许运行在不同的机器上,甚至在不同的机房里,因此 Driver 对 Executor 失去掌握。为了能够掌控 Executor,在 Driver 中创建了这个心跳接收器。
3.7创建任务调度器TaskScheduler
低级调度器接口,当前被org.apache.spark.scheduler.TaskSchedulerImpl唯一实现。
为一个SparkContext调度任务。
从DAGScheduler接受不同Stage的任务。
TaskScheduler负责发送这些任务到cluster,运行它们,如果失败则重试。
返回events给DAGScheduler
createTaskScheduler方法根据master进行模式匹配,创建TaskSchedulerImpl,并生成不同的SchedulerBackend。