Spark Streaming揭秘 Day23 启动关闭源码图解
2016-06-09 21:47
267 查看
Spark Streaming揭秘 Day23
启动关闭源码图解
今天主要分析一下SparkStreaming的启动和关闭过程。从Demo程序出发,主要聚焦在两段代码:
启动代码:
关闭代码:
启动过程
StreamingContext是对SparkContext的封装,是个装饰器模式,相当于给SparkCore化妆。其中最关键的参数是Batch Duration,Driver和Executor上的两个定时器都是基于这个参数。
在构造时创建的关键对象如下:
DStreamGraph,DStream依赖关系构成的有向无环图,rememberDuration可以设置数据存活步长,不太直接使用。
JobScheduler,作业生成之后调度到集群的关键对象。
ContextWaiter,关闭程序时很重要。
progressListener,StreamingJobProcessListener,提供了处理各个进度时点的回调接口,是进行功能定制时主要使用到的。
uiTab,StreamingTab,提供UI的生成。
运行过程
以Demo代码为例,socketTextStream中,会把字节数据变成一行一行的数据。深入进去,我们会发现这个代码并没有在此时执行,而是在后续时使用getNext方法来获取。
关闭过程
如下为关闭方法,可以指定超时时间,超过之后会获得停止。具体关闭是一个等待的过程,当中使用到了两个控制变量,如果没有停止或者错误信号,就会一直循环等待。
所以,对应有两个两种notify方式用来停止处理,分别对应stop和error情况。
小结
最后,我们将启动和关闭的过程用一个状态机来描述一下:欲知后事如何,且听下回分解
DT大数据每天晚上20:00YY频道现场授课频道68917580相关文章推荐
- 第二阶段冲刺第九天(6月8号)
- 和Linux大魔王一起愉快的玩耍(四)常用进程调度算法
- Entity Framework相关介绍
- django学习教程(一)如何安装python django和基本的操作
- 《剑指offer》:[29]数组中出现数字超过一半的数字
- 使用照相机
- android学习前必备java基础
- CentOS6.7上编译安装Apache2.2和Apache2.4
- 可用的Shell命令
- Linux系统安装卸载jdk和tomcat
- Emulator Control位置的变化
- JSP入门-基本语法
- C/C++程序设计题 机器人擂台赛
- JSON
- 建造者模式
- 225. Implement Stack using Queues
- 新模式以及设计模式比较
- CSS Sprite(css精灵)
- css前端知识点总结
- 80. Remove Duplicates from Sorted Array II