原创文章,转载请注明: 转载自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 

最新文章

  1. jQuery 语法
  2. 在指定的div中搜索内容,并滚动显示到当前搜索到的内容处
  3. 你真的精通 CSS 了?来挑战一下 CSS 选择器测验吧
  4. css引入方式优先级以及不同选择器的优先级区别
  5. ElasticSearch之一——索引
  6. C++ 简单的学生信息管理系统
  7. swift初识
  8. light oj 1078 - Integer Divisibility
  9. js组件开发流程
  10. 物理机与虚拟机IP互ping通,而互ping主机名不通
  11. Xcode插件(一)-规范注释生成器VVDocumenter
  12. 小言HTTP Authentication
  13. OAuth2.0学习(1-9)新浪开放平台微博认证-web应用授权(授权码方式)
  14. MySql 学习之路-高级2
  15. <二>企业级开源仓库nexus3实战应用–使用nexus3配置docker私有仓库
  16. java 二维数组和对象数组
  17. xcode 定义自己的代码片段
  18. MAVEN ECLIPSE JAR工程
  19. Babelfish 开源通用代码解析服务
  20. vim自动缩进

热门文章

  1. JS全局屏蔽回车事件
  2. JAVA类与对象(八)-----重写
  3. python三级菜单
  4. python的urllib2库详细使用说明
  5. Xcode 添加代码块
  6. PBOC电子钱包与电子现金及QPBOC
  7. 【转】eclipse技巧2
  8. IIS8中 出现ashx 401:未授权,uploadify上传文件失败
  9. 使用Java 8 API,根据传递的分隔符,连接list中所有的元素
  10. cygwin and its host machine