第2课 通过案例对SparkStreaming透彻理解三板斧之二
2016-05-03 00:00
330 查看
摘要: 解密SparkStreaming运行机制和架构
Spark Streaming基础概念理解:
为了更好的理解spark streaming,我们先简单的对相关概念理解一下
1 离散流:(Discretized Stream ,DStream):这是spark streaming对内部的持续的实时数据流的抽象描述,也即我们处理的一个实时数据流,在spark streaming中对应一个DStream
2 批数据:将实时流时间以时间为单位进行分批,将数据处理转化为时间片数据的批处理
3 时间片或者批处理时间间隔:逻辑级别的对数据进行定量的标准,以时间片作为拆分流数据的依据。
4 窗口长度:一个窗口覆盖的流数据的时间长度。比如说要每隔5分钟统计过去30分钟的数据,窗口长度为6,因为30分钟是batch interval 的6倍
5 滑动时间间隔:比如说要每隔5分钟统计过去30分钟的数据,窗口时间间隔为5分钟
6 input DStream :一个inputDStream是一个特殊的DStream 将spark streaming连接到一个外部数据源来读取数据。
7 Receiver :长时间(可能7*24小时)运行在Excutor之上,每个Receiver负责一个inuptDStream (比如读取一个kafka消息的输入流)。每个Receiver,加上inputDStream 会占用一个core/slot
纵轴为空间维度:代表的是RDD的依赖关系构成的具体的处理逻辑的步骤,是用DStream来表示的。
横轴为时间维度:按照特定的时间间隔不断地生成job对象,并在集群上运行。
随着时间的推移,基于DStream Graph 不断生成RDD Graph ,也即DAG的方式生成job,并通过Job Scheduler的线程池的方式提交给spark cluster不断的执行。
由上可知,RDD 与 DStream的关系如下
RDD是物理级别的,而 DStream 是逻辑级别的
DStream是RDD的封装类,是RDD进一步的抽象
DStream 是RDD的模板。DStream要依赖RDD进行具体的数据计算
注意:纵轴维度需要RDD,DAG的生成模板,需要TimeLine的job控制器
横轴维度(时间维度)包含batch interval,窗口长度,窗口滑动时间等。
inputStream和outputStream分别代表数据的输入和输出
具体的job运行在spark cluster之上,此时系统的容错就非常重要,而spark streaimg的容错非常巧妙,它巧妙的借用了spark core rdd的容错而容错。
事务处理:数据一定会被处理,并且只会对数据处理一次,这个特性对于那些诸如计费系统的实现非常重要。
感谢王家林老师的知识分享
王家林老师名片:
中国Spark第一人
感谢王家林老师的知识分享
新浪微博:http://weibo.com/ilovepains
微信公众号:DT_Spark
博客:http://blog.sina.com.cn/ilovepains
手机:18610086859
QQ:1740415547
邮箱:18610086859@vip.126.com
YY课堂:每天20:00现场授课频道68917580
王家林:DT大数据梦工厂创始人、Spark亚太研究院院长和首席专家、大数据培训专家、大数据架构师。
Spark Streaming基础概念理解:
为了更好的理解spark streaming,我们先简单的对相关概念理解一下
1 离散流:(Discretized Stream ,DStream):这是spark streaming对内部的持续的实时数据流的抽象描述,也即我们处理的一个实时数据流,在spark streaming中对应一个DStream
2 批数据:将实时流时间以时间为单位进行分批,将数据处理转化为时间片数据的批处理
3 时间片或者批处理时间间隔:逻辑级别的对数据进行定量的标准,以时间片作为拆分流数据的依据。
4 窗口长度:一个窗口覆盖的流数据的时间长度。比如说要每隔5分钟统计过去30分钟的数据,窗口长度为6,因为30分钟是batch interval 的6倍
5 滑动时间间隔:比如说要每隔5分钟统计过去30分钟的数据,窗口时间间隔为5分钟
6 input DStream :一个inputDStream是一个特殊的DStream 将spark streaming连接到一个外部数据源来读取数据。
7 Receiver :长时间(可能7*24小时)运行在Excutor之上,每个Receiver负责一个inuptDStream (比如读取一个kafka消息的输入流)。每个Receiver,加上inputDStream 会占用一个core/slot
纵轴为空间维度:代表的是RDD的依赖关系构成的具体的处理逻辑的步骤,是用DStream来表示的。
横轴为时间维度:按照特定的时间间隔不断地生成job对象,并在集群上运行。
随着时间的推移,基于DStream Graph 不断生成RDD Graph ,也即DAG的方式生成job,并通过Job Scheduler的线程池的方式提交给spark cluster不断的执行。
由上可知,RDD 与 DStream的关系如下
RDD是物理级别的,而 DStream 是逻辑级别的
DStream是RDD的封装类,是RDD进一步的抽象
DStream 是RDD的模板。DStream要依赖RDD进行具体的数据计算
注意:纵轴维度需要RDD,DAG的生成模板,需要TimeLine的job控制器
横轴维度(时间维度)包含batch interval,窗口长度,窗口滑动时间等。
inputStream和outputStream分别代表数据的输入和输出
具体的job运行在spark cluster之上,此时系统的容错就非常重要,而spark streaimg的容错非常巧妙,它巧妙的借用了spark core rdd的容错而容错。
事务处理:数据一定会被处理,并且只会对数据处理一次,这个特性对于那些诸如计费系统的实现非常重要。
感谢王家林老师的知识分享
王家林老师名片:
中国Spark第一人
感谢王家林老师的知识分享
新浪微博:http://weibo.com/ilovepains
微信公众号:DT_Spark
博客:http://blog.sina.com.cn/ilovepains
手机:18610086859
QQ:1740415547
邮箱:18610086859@vip.126.com
YY课堂:每天20:00现场授课频道68917580
王家林:DT大数据梦工厂创始人、Spark亚太研究院院长和首席专家、大数据培训专家、大数据架构师。
相关文章推荐
- JAVA多线程编程——JAVA内存模型
- Docker Java+Tomcat 环境搭建
- 远程执行命令通用脚本
- 有了这个杀手锏,客户那点小心思就全知道啦!
- 网红老师时薪过万,那些行业金矿你知道多少?
- Linux中使用SecureCRT上传、下载文件命令sz与rz用法实例
- grunt的使用
- gulp的使用
- nodejs的一些日常操作
- SystemBarTint沉浸式通知栏
- 正则表达式
- Android studio 如何打包项目,与版本升级
- String
- Dialog Toast Notification的使用
- how to invoke activity when app in background
- OpenResty和Netty最大连接数测试
- 亿级Web系统的容错性建设实践
- Log4j2架构分析与实战
- Servlet原理
- Angularjs ng-grid 升级到 UI-Grid