【Spark内核源码】SparkContext一些方法的解读

目录

创建SchedulerBackend的TaskScheduler方法

设置并启动事件总线

发布环境更新的方法

发布应用程序系统的方法


【Spark内核源码】SparkContext中的组件和初始化 已经介绍了Spark初始化时是如何执行的,都创建了哪些组件。这些组件具体技术细节后面会慢慢的说,而针对SparkContext,里面还有一些方法,值得大家品一品。

创建SchedulerBackend的TaskScheduler方法

在SparkContext初始化中有这么一段代码执行了SparkContext.createTaskScheduler方法,用于创建SchedulerBackend和TaskScheduler。TaskScheduler是Spark的重要组成部分,其进行两级调度,第一级调度是负责向集群管理器发送请求给应用程序分配并运行Executor,第二级调度是给具体任务分配Executor并执行相关任务。

createTaskScheduler方法有点长,需要慢慢分析。

首先createTaskScheduler方法需要传入三个参数,SparkContext,master和deployMode,从调用createTaskScheduler方法时可以看出,SparkContext就是使用的本身,"sc = this",master是配置文件中key=“spark.master”所对应的值,deployMode是配置文件中key=“spark.submit.deployMode”所对应的值。返回值类型是Tuple,第一个元素是SchedulerBackend,第二个元素是TaskScheduler。

接着就是对master进行模式匹配

如果master与local匹配:

分别创建TaskSchedulerImpl和LocalSchedulerBack

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值