分享

Spark源码分析(二):SparkContext创建

本帖最后由 pig2 于 2014-10-4 23:47 编辑
阅读导读:
1.SparkContext类创建过程中涉及到哪些对象?
2.SparkContext的创建过程需要几个步骤?
3.涉及到几种监听器?
4.StorageStatusListener监听器的作用?
5.spark.eventLog.enabled的值有哪些?



4.gif

SparkContext是应用启动时创建的Spark上下文对象,是一个重要的入口类。
本文主要分析在SparkContext类创建过程中进行的一些重要操作:
1、创建SparkConf对象
     创建SparkConf对象来管理spark应用的属性设置。SparkConf类比较简单,是通过一个HashMap容器来管理key、value类型的属性。
SC一.png
2、创建LiveListenerBus监听器
   这是典型的观察者模式,向LiveListenerBus类注册不同类型的SparkListenerEvent事件,SparkListenerBus会遍历它的所有监听者SparkListener,然后找出事件对应的接口进行响应。
SC二.png

3、创建SparkEnv运行环境
   在SparkEnv中创建了MapOutputTrackerMasterActor、BlockManager、CacheManager、HttpFileServer一系列对象,关于BlockManager、CacheManager相关的后续再单独分析。
sc3.jpg
4、创建SparkUI
   在SparkUI对象初始化函数中,注册了StorageStatusListener监听器,负责监听Storage的变化及时的展示到Sparkweb页面上。
attachTab方法中添加对象正是我们在Spark Web页面中看到的那个标签
sc4.png
5、添加EventLoggingListener监听器
   这个默认是关闭的,可以通过spark.eventLog.enabled配置开启。它主要功能是以json格式记录发生的事件
sc5.png
6、创建Scheduler
   创建了TaskScheduler、DAGScheduler
sc6.png
7、加入SparkListenerEvent事件
   往LiveListenerBus中加入了SparkListenerEnvironmentUpdate、SparkListenerApplicationStart两类事件,
   对这两种事件监听的监听器就会调用onEnvironmentUpdate、onApplicationStart方法进行处理


sc7.png


相关文章:


Spark源码分析(三):TaskScheduler创建

Spark源码分析(一)-Standalone启动过程





已有(3)人评论

跳转到指定楼层
tt7734 发表于 2014-11-4 19:08:08
感谢楼主分享,谢谢
回复

使用道具 举报

crazyfish1986 发表于 2014-12-9 23:02:18
新人就这么厉害,佩服。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条