原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3872785.html 

 

  SparkContext是应用启动时创建的Spark上下文对象,是一个重要的入口类。本文主要分析下在SparkContext类创建过程中进行的一些重要操作:

  1、创建SparkConf对象

    创建SparkConf对象来管理spark应用的属性设置。SparkConf类比较简单,是通过一个Hashap容器来管理key、value类型的属性。

    

  

  2、创建LiveListenerBus监听器

    这是典型的观察者模式,向LiveListenerBus类注册不同类型的SparkListenerEvent事件,SparkListenerBus会遍历它的所有监听

    者SparkListener,然后找出事件对应的接口进行响应。

    

   3、创建SparkEnv运行环境

    在SparkEnv中创建了MapOutputTrackerMasterActor、BlockManager、CacheManager、HttpFileServer一系列对象,关于BlockManager、CacheManager相关

    的后续再单独分析。

      

  4、创建SparkUI

    在SparkUI对象初始化函数中,注册了StorageStatusListener监听器,负责监听Storage的变化及时的展示到Spark web页面上。

    attachTab方法中添加对象正是我们在Spark Web页面中看到的那个标签

    

  5、添加EventLoggingListener监听器

    这个默认是关闭的,可以通过spark.eventLog.enabled配置开启。它主要功能是以json格式记录发生的事件

    

  6、创建Scheduler

    创建了TaskScheduler、DAGScheduler

    

  7、加入SparkListenerEvent事件

    往LiveListenerBus中加入了SparkListenerEnvironmentUpdate、SparkListenerApplicationStart两类事件,

    对这两种事件监听的监听器就会调用onEnvironmentUpdate、onApplicationStart方法进行处理

    

  至此,已经分析完SparkContext创建过程中涉及到的重要操作。

 

 原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3872785.html 

posted on 2014-07-29 21:57  tovin  阅读(1911)  评论(0编辑  收藏  举报