博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spark Streaming揭秘 Day23 启动关闭源码图解
阅读量:6952 次
发布时间:2019-06-27

本文共 808 字,大约阅读时间需要 2 分钟。

Spark Streaming揭秘 Day23

启动关闭源码图解

今天主要分析一下SparkStreaming的启动和关闭过程。

从Demo程序出发,主要聚焦在两段代码:

启动代码:

Snip20160609_7

关闭代码:

Snip20160609_6

启动过程

StreamingContext是对SparkContext的封装,是个装饰器模式,相当于给SparkCore化妆。

Snip20160609_9

其中最关键的参数是Batch Duration,Driver和Executor上的两个定时器都是基于这个参数。

在构造时创建的关键对象如下:

  1. DStreamGraph,DStream依赖关系构成的有向无环图,rememberDuration可以设置数据存活步长,不太直接使用。
  2. JobScheduler,作业生成之后调度到集群的关键对象。
  3. ContextWaiter,关闭程序时很重要。
  4. progressListener,StreamingJobProcessListener,提供了处理各个进度时点的回调接口,是进行功能定制时主要使用到的。
  5. uiTab,StreamingTab,提供UI的生成。

运行过程

以Demo代码为例,socketTextStream中,会把字节数据变成一行一行的数据。

Snip20160609_8

深入进去,我们会发现这个代码并没有在此时执行,而是在后续时使用getNext方法来获取。

Snip20160609_14

关闭过程

如下为关闭方法,可以指定超时时间,超过之后会获得停止。

Snip20160609_10

具体关闭是一个等待的过程,当中使用到了两个控制变量,如果没有停止或者错误信号,就会一直循环等待。

Snip20160609_13

所以,对应有两个两种notify方式用来停止处理,分别对应stop和error情况。

Snip20160609_12

小结

最后,我们将启动和关闭的过程用一个状态机来描述一下:

IMF-23

欲知后事如何,且听下回分解

DT大数据每天晚上20:00YY频道现场授课频道68917580

转载于:https://www.cnblogs.com/dt-zhw/p/5572806.html

你可能感兴趣的文章
把一个控制器的view添加到另外一个控制器
查看>>
pc端和移动端下拉刷新
查看>>
Maven详解之聚合与继承
查看>>
Spark(二)CentOS7.5之Spark2.3.1HA安装
查看>>
内存池和tcmalloc的性能比较
查看>>
大白话5分钟带你走进人工智能-第二十三节决策树系列之特点和数学表达形式(2)...
查看>>
GOF设计模式汇总
查看>>
Ehcache整合spring配置,配置springMVC缓存
查看>>
华为敏捷/DevOps实践:如何开好站立会议
查看>>
NDN与TCP/IP
查看>>
Java MVC设计模式
查看>>
android Studio快捷键
查看>>
js的 new Date()日期格式化显示以及js获取时间戳
查看>>
区块链中的节点是什么?
查看>>
要不要跟风iPad
查看>>
Java》uSocket =
查看>>
练习4.4 萨提亚冰山理论应用
查看>>
模块与包
查看>>
onbeforeunload与onunload事件
查看>>
CSS Hack
查看>>