前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >spark源码系列02-sparkcontext

spark源码系列02-sparkcontext

作者头像
Dlimeng
发布2023-06-29 15:10:33
1040
发布2023-06-29 15:10:33
举报
文章被收录于专栏:开源心路开源心路

用的spark版本1.3+

spark源码系列02-sparkcontext
spark源码系列02-sparkcontext

1.SparkSubmit

bin/spark-submit --class xx.WordCount  --master spark://ip:7077 --executor-memory 2g --total-executor-cores 4

2.WordCount

new()

3.SparkContext

该方法创建一个ActorSystem

createSparkEnv 

4.SparkContext 

创建Driver的运行时环境,注意这里的numDriverCores是local模式下用来执行计算的cores的个数,如果不是本地模式的话就是0

SparkEnv.createDriverEnv(conf, isLocal, listenerBus, SparkContext.numDriverCores(master))

为driver创建一个SparkEnv

conf:SparkConf conf 是对SparkConf的复制

listenerBus 才用监听器模式维护各类事件处理

private[spark] def createDriverEnv(

      conf: SparkConf,

      isLocal: Boolean,

      listenerBus: LiveListenerBus,

      numCores: Int,

      mockOutputCommitCoordinator: Option[OutputCommitCoordinator] = None) ...

5.SparkEnv createDriverEnv

createDriverEnv 最终调用的是create方法创建SparkEnv

create()

6.SparkEnv  createActorSyetem() 

利用AkkaUtils这个工具类创建ActorSystem

 AkkaUtils.createActorSystem(actorSystemName, hostname, port, conf, securityManager)

7.AkkaUtils startServiceOnPort()

8.AkkaUtils doCreateActorSystem

9.AkkaUtils 

创建ActorSystem

val actorSystem = ActorSystem(name, akkaConf)

ActorSystem = apply()

10.SparkContext createTaskScheduler()

根据提交任务时指定url创建相应的TaskScheduler,创建一个TaskScheduler

11.SparkContext new()

创建spark的StandAlone模式

case SPARK_REGEX(sparkUrl) =>

val scheduler = new TaskSchedulerImpl(sc)

12.SparkContext  new()

创建一个SparkDeploySchedulerBackend

 val backend = new SparkDeploySchedulerBackend(scheduler, sc, masterUrls)

 13.SparkContext  initialize

 调用initialize创建调度器

 scheduler.initialize(backend)

 14.SparkContext new()

 创建一个DAGScheduler,以后用来把DAG切分成Stage

 dagScheduler = new DAGScheduler(this)

 15.SparkContext start()

 启动taskScheduler

 taskScheduler.start()

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档