Spark源码分析(二)-SparkContext创建
原创文章,转载请注明: 转载自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
Spark源码分析(二)-SparkContext创建的更多相关文章
- spark源码分析以及优化
		
第一章.spark源码分析之RDD四种依赖关系 一.RDD四种依赖关系 RDD四种依赖关系,分别是 ShuffleDependency.PrunDependency.RangeDependency和O ...
 - spark 源码分析之四 -- TaskScheduler的创建和启动过程
		
在 spark 源码分析之二 -- SparkContext 的初始化过程 中,第 14 步 和 16 步分别描述了 TaskScheduler的 初始化 和 启动过程. 话分两头,先说 TaskSc ...
 - spark 源码分析之五 -- Spark内置RPC机制剖析之一创建NettyRpcEnv
		
在前面源码剖析介绍中,spark 源码分析之二 -- SparkContext 的初始化过程 中的SparkEnv和 spark 源码分析之四 -- TaskScheduler的创建和启动过程 中的C ...
 - 《深入理解Spark:核心思想与源码分析》——SparkContext的初始化(叔篇)——TaskScheduler的启动
		
<深入理解Spark:核心思想与源码分析>一书前言的内容请看链接<深入理解SPARK:核心思想与源码分析>一书正式出版上市 <深入理解Spark:核心思想与源码分析> ...
 - Spark源码分析(三)-TaskScheduler创建
		
原创文章,转载请注明: 转载自http://www.cnblogs.com/tovin/p/3879151.html 在SparkContext创建过程中会调用createTaskScheduler函 ...
 - Spark源码分析 – SparkContext
		
Spark源码分析之-scheduler模块 这位写的非常好, 让我对Spark的源码分析, 变的轻松了许多 这里自己再梳理一遍 先看一个简单的spark操作, val sc = new SparkC ...
 - Spark源码分析之八:Task运行(二)
		
在<Spark源码分析之七:Task运行(一)>一文中,我们详细叙述了Task运行的整体流程,最终Task被传输到Executor上,启动一个对应的TaskRunner线程,并且在线程池中 ...
 - spark 源码分析之十二 -- Spark内置RPC机制剖析之八Spark RPC总结
		
在spark 源码分析之五 -- Spark内置RPC机制剖析之一创建NettyRpcEnv中,剖析了NettyRpcEnv的创建过程. Dispatcher.NettyStreamManager.T ...
 - spark 源码分析之二十一 -- Task的执行流程
		
引言 在上两篇文章 spark 源码分析之十九 -- DAG的生成和Stage的划分 和 spark 源码分析之二十 -- Stage的提交 中剖析了Spark的DAG的生成,Stage的划分以及St ...
 - Spark源码分析之六:Task调度(二)
		
话说在<Spark源码分析之五:Task调度(一)>一文中,我们对Task调度分析到了DriverEndpoint的makeOffers()方法.这个方法针对接收到的ReviveOffer ...
 
随机推荐
- [ios]ios-Demo4脱衣服/刮奖app-专业
			
普通版本完成的锯齿很严重 但是Ios系统中仅CGContextClearRect 并不存在cyclo等方法. 网上查了一些资料. 发现还是利用到了CG 中的Mask来实现效果图: 这种效果可以自定义画 ...
 - 浅谈.NET中闭包
			
什么是闭包 闭包可以从而三个维度来说明.在编程语言领域,闭包是指由函数以及与函数相关的上下文环境组合而成的实体.通过闭包,函数与其上下文变量之间建立起关联关系,上下文变量的状态可以在函数的多次调用过程 ...
 - JNI文件中命名类与JAVA文件中匹配
			
jni.c中注册中 int register_android_boa(JNIEnv *env){ jclass clazz; static const char* const kClass ...
 - js 获取随机数
			
返回 m 到 n 的随机整数 <script type="text/javascript"> function randomNumber(m.n){ return Ma ...
 - WEB相关文件的加载顺序
			
一. 1.启动一个WEB项目,WEB容器会先去读取它的配置文件web.xml,读取<context-param>和<listener>两个节点. 2.接着,容器创建一个Serv ...
 - CSS中盒子模型和position(一)
			
今天遇到几个css中的重要的知识点,记得这些都是以前看过的:margin.padding.border和position.可是用起来还是有很多的问题,以前自己看过去总是懒得记录,等到用起来了都不知道自 ...
 - 常用EXE文件反编译工具
			
PE Explorer V1.99 R5 绿色汉化特别版_强大的可视化汉化集成工具 功能极为强大的可视化汉化集成工具,可直接浏览.修改软件资源,包括菜单.对话框.字符串表等: 另外,还具备有 W32D ...
 - 对中级Linux用户有用的20个命令
			
1. 命令: Find 搜索指定目录下的文件,从开始于父目录,然后搜索子目录. 注意: -name‘选项是搜索大小写敏感.可以使用-iname‘选项,这样在搜索中可以忽略大小写.(*是通配符,可以搜索 ...
 - Windows窗体应用程序(非Console)使用libuv实现简单的异步WEB服务器
			
libuv是一个很强大的异步处理框架(严格意义上不能叫框架,其实就是一组异步函数库,当然框架这东西有各种各样的定义和理解_^...),最初的的目的是用于NODEJS的异步处理,不过因为它是一个独立的项 ...
 - python-根据字符串动态生成对象eval
			
# -*- coding: utf-8 -*- stock1={ 'stockName':"沈阳机床", ", 'averagePrice_yesterday':34.0 ...