Spark Streaming揭秘 Day24 Transformation和action图解
Spark Streaming揭秘 Day24
Transformation和action图解
今天我们进入SparkStreaming的数据处理,谈一下两个重要的操作Transfromation和action背后的故事。
InputReceiver
根据前面的课程,我们知道Transformation是逻辑级别的状态转换,并没有真的发生。
让我们从第一个Transformation,也就是SocketTextStream开始。
这里需要注意的是,这里返回的是字符串类型,这个是通过converter也就是byteToLine方法来实现的。

进入父类,也就是SocketInputDStream。
其中关键对象是SocketReceiver,其中比较关键的是调用了hasNext方法,这里用到了一个命令模式,具体会指向socketTextStreamin传入的byteToLine方法生成。

在伴生对象中我们看到了byteToLine的实现,具体实现了一个命令。

此外,onStop方法为空,没有清空资源,因为在receive方法中已经进行了处理,如果当停止时会中断。

进入到SocketReceiver的父类Receiver
其中的关键方法是restart,它会告诉supervisor去重新启动,并用了一个future对象实现了异步调用。

InputDStream
下面让我们转入DStream。
首先看下,ReceiverInputDStream,关键方法是compute,输入流以时间为单位计算产生RDD,也说明了ReceiverInputDStream的实例对象是在Driver中的。

进入父类InputDStream。
这里有一个关键代码,将inputDStream添加至DStreamGraph中。

DStreamGraph
DStreamGraph是作为整个DStream处理的枢纽存在。包含所有的输入和输出。

outputStreams的作用是应用程序可能包含多个action,那么每个action会对应一个outputStream,同时每个outputStream生成一个Job。
outputStreams都是通过DStream的register方法来生成的。

自此,基本对Transformation和action中设计的对象进行了一下遍历。
小结
下面开始绘图,从两个基本数据结构inputStreams和outputStreams出发,在继承结构中表现的数据结构存储大家要注意。

欲知后事如何,且听下回分解!
DT大数据每天晚上20:00YY频道现场授课频道68917580
Spark Streaming揭秘 Day24 Transformation和action图解的更多相关文章
- Spark Streaming揭秘 Day26 JobGenerator源码图解
Spark Streaming揭秘 Day26 JobGenerator源码图解 今天主要解析一下JobGenerator,它相当于一个转换器,和机器学习的pipeline比较类似,因为最终运行在Sp ...
- Spark Streaming揭秘 Day22 架构源码图解
Spark Streaming揭秘 Day22 架构源码图解 今天主要是通过图解的方式,对SparkStreaming的架构进行一下回顾. 下面这个是其官方标准的流程描述. SparkStreamin ...
- Spark Streaming揭秘 Day23 启动关闭源码图解
Spark Streaming揭秘 Day23 启动关闭源码图解 今天主要分析一下SparkStreaming的启动和关闭过程. 从Demo程序出发,主要聚焦在两段代码: 启动代码: 关闭代码: 启动 ...
- Spark Streaming揭秘 Day8 RDD生命周期研究
Spark Streaming揭秘 Day8 RDD生命周期研究 今天让我们进一步深入SparkStreaming中RDD的运行机制.从完整的生命周期角度来说,有三个问题是需要解决的: RDD到底是怎 ...
- Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析
Spark Streaming揭秘 Day30 集群模式下SparkStreaming日志分析 今天通过集群运行模式观察.研究和透彻的刨析SparkStreaming的日志和web监控台. Day28 ...
- Spark Streaming揭秘 Day27 Job产生机制
Spark Streaming揭秘 Day27 Job产生机制 今天主要讨论一个问题,就是除了DStream action以外,还有什么地方可以产生Job,这会有助于了解Spark Streaming ...
- Spark Streaming揭秘 Day6 关于SparkStreaming Job的一些思考
Spark Streaming揭秘 Day6 关于SparkStreaming Job的一些思考 Job是SparkStreaming的重要基础,今天让我们深入,进行一些思考. Job是什么? 首先, ...
- Spark Streaming揭秘 Day1-三大谜团
Spark Streaming揭秘 Day1 三大谜团 引子 在Spark的众多组件中,Streaming最接近企业级应用程序,学习Spark Streaming,是掌握大数据技术的一条捷径.今天是第 ...
- Spark Streaming揭秘 Day35 Spark core思考
Spark Streaming揭秘 Day35 Spark core思考 Spark上的子框架,都是后来加上去的.都是在Spark core上完成的,所有框架一切的实现最终还是由Spark core来 ...
随机推荐
- 解决位图失真-SetStretchBltMode()
当用以下函数加载一张位图时,当窗口发生重绘更改大小时,位图将失真: CBitmap bitmap; bitmap.LoadBitmap(IDB_BITMAP2); BITMAP bmp; bitm ...
- JavaScript实现复选框的全选,反选,不选
<script> window.onload=function(){ var CheckAll=document.getElementById('All'); var UnCheck=do ...
- 高德地图 JavaScript API 开发系列教程(一)
高德地图 API 提供包括 Web API 即 JavaScript API,Android API,定位API,IOS API,WP API,Win8 API等,本系列教程主要针对高德 JavaSc ...
- Inaccurate values for “Currently allocated space” and “Available free space” in the Shrink File dialog for TEMPDB only
转载自:http://blogs.msdn.com/b/ialonso/archive/2012/10/08/inaccurate-values-for-currently-allocated-spa ...
- okhttputils开源库的混淆配置(Eclipse)
#=====================okhttputils框架===================== #====okhttputils==== -libraryjars libs/okht ...
- sqlserver2005数据库18456错误(转)
第一步.以windows验证模式进入数据库管理器.第二步:右击sa,选择属性:在常规选项卡中,重新填写密码和确认密码(改成个好记的).把强制实施密码策略去掉.第三步:点击状态选项卡:勾选授予和启用.然 ...
- Linux 命令 - mkdir: 创建目录
命令格式 mkdir [OPTION]... DIRECTORY... 命令参数 -m, --mode=MODE 设置文件的模式,类似于 chmod 命令. -p, --parents 需要时创建指定 ...
- 软件包 java.util 的分层结构
概述 软件包 类 使用 树 已过时 索引 帮助 JavaTM Platform Standard Ed. 6 上一个 下一个 框架 无框架 所有类 ...
- Android 命令行编译、打包生成apk文件
一.搭建搭建环境 1. 安装JDK 和 Android SDK 2. 配置环境变量 D:\android-sdk-windows\tools C:\Program Files\Java\jdk1. ...
- C# 保存PictureBox中的图片到数据库,并从数据库读取图片显示到PictrueBox,解决报错 “无效参数”
下面是两段关键代码: /// <summary> /// 将一张图片转换为字节 /// </summary> /// <param name="img" ...