没有合适的资源?快使用搜索试试~ 我知道了~
首页7.SparkStreaming(上)--SparkStreaming原理介绍.pdf
1.Spark及其生态圈简介.pdf 2.Spark编译与部署(上)--基础环境搭建.pdf 2.Spark编译与部署(下)--Spark编译安装.pdf 2.Spark编译与部署(中)--Hadoop编译安装.pdf 3.Spark编程模型(上)--概念及SparkShell实战.pdf 3.Spark编程模型(下)--IDEA搭建及实战.pdf 4.Spark运行架构.pdf 5.Hive(上)--Hive介绍及部署.pdf 5.Hive(下)--Hive实战.pdf 6.SparkSQL(上)--SparkSQL简介.pdf 6.SparkSQL(下)--Spark实战应用.pdf 6.SparkSQL(中)--深入了解运行计划及调优.pdf 7.SparkStreaming(上)--SparkStreaming原理介绍.pdf 7.SparkStreaming(下)--SparkStreaming实战.pdf 8.SparkMLlib(上)--机器学习及SparkMLlib简介.pdf 8.SparkMLlib(下)--SparkMLlib实战.pdf 9.SparkGraphX介绍及实例.pdf 10.分布式内存文件系统Tachyon介绍及安装部署.pdf
资源详情
资源评论
资源推荐

第 1 页 共 19 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
Spark Streaming 原理介绍

第 2 页 共 19 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
目 录
1 SPARK STREAMING简介 ...................................................................................................................................... 3
1.1 概述 ..................................................................................................................................................................... 3
1.2 术语定义 ............................................................................................................................................................. 3
1.3 S
TORM与SPARK STREMING比较 ......................................................................................................................... 4
2
运行原理 ..................................................................................................................................................................... 5
2.1 S
TREAMING架构 .................................................................................................................................................. 5
2.2 编程模型 ............................................................................................................................................................. 7
2.2.1
如何使用
Spark Streaming ................................................................................................................................ 8
2.2.2 DStream
的输入源
............................................................................................................................................ 9
2.2.3 DStream
的操作
.............................................................................................................................................. 11
2.3 容错、持久化和性能调优 ............................................................................................................................... 16
2.3.1
容错
................................................................................................................................................................ 16
2.3.2
持久化
............................................................................................................................................................ 18
2.3.3
性能调优
........................................................................................................................................................ 18

第 3 页 共 19 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
Spark Streaming 原理介绍
1 Spark Streaming 简介
1.1 概述
Spark Streaming 是 Spark 核心 API 的一个扩展,可以实现高吞吐量的、具备容错机制的
实时流数据的处理。支持从多种数据源获取数据,包括 Kafk、Flume、Twitter、ZeroMQ、Kinesis
以及 TCP sockets,从数据源获取数据之后,可以使用诸如 map、reduce、join 和 window 等
高级函数进行复杂算法的处理。最后还可以将处理结果存储到文件系统,数据库和现场仪表盘。
在“One Stack rule them all”的基础上,还可以使用 Spark 的其他子框架,如集群学习、图
计算等,对流数据进行处理。
Spark Streaming 处理的数据流图:
Spark 的各个子框架,都是基于核心 Spark 的,Spark Streaming 在内部的处理机制是,接
收实时流的数据,并根据一定的时间间隔拆分成一批批的数据,然后通过 Spark Engine 处理这
些批数据,最终得到处理后的一批批结果数据。
对应的批数据,在 Spark 内核对应一个 RDD 实例,因此,对应流数据的 DStream 可以看
成是一组 RDDs,即 RDD 的一个序列。通俗点理解的话,在流数据分成一批一批后,通过一个
先进先出的队列,然后 Spark Engine 从该队列中依次取出一个个批数据,把批数据封装成一
个 RDD,然后进行处理,这是一个典型的生产者消费者模型,对应的就有生产者消费者模型的
问题,即如何协调生产速率和消费速率。
1.2 术语定义
离散流(discretized stream)或 DStream:这是 Spark Streaming 对内部持续的实时数
据流的抽象描述,即我们处理的一个实时数据流,在 Spark Streaming 中对应于一个

第 4 页 共 19 页 出自石山园,博客地址:http://www.cnblogs.com/shishanyuan
DStream 实例。
批数据(batch data):这是化整为零的第一步,将实时流数据以时间片为单位进行分批,
将流处理转化为时间片数据的批处理。随着持续时间的推移,这些处理结果就形成了对应的
结果数据流了。
时间片或批处理时间间隔( batch interval):这是人为地对流数据进行定量的标准,以时
间片作为我们拆分流数据的依据。一个时间片的数据对应一个 RDD 实例。
窗口长度(window length):一个窗口覆盖的流数据的时间长度。必须是批处理时间间隔
的倍数,
滑动时间间隔:前一个窗口到后一个窗口所经过的时间长度。必须是批处理时间间隔的倍数
Input DStream :一个 input DStream 是一个特殊的 DStream,将 Spark Streaming 连接
到一个外部数据源来读取数据。
1.3 Storm 与 Spark Streming 比较
处理模型以及延迟
虽然两框架都提供了可扩展性(scalability)和可容错性(fault tolerance),但是它们的处理模
型从根本上说是不一样的。Storm 可以实现亚秒级时延的处理,而每次只处理一条 event,而
Spark Streaming 可以在一个短暂的时间窗口里面处理多条(batches)Event。所以说 Storm 可
以实现亚秒级时延的处理,而 Spark Streaming 则有一定的时延。
容错和数据保证
然而两者的代价都是容错时候的数据保证,Spark Streaming 的容错为有状态的计算提供了
更好的支持。在 Storm 中,每条记录在系统的移动过程中都需要被标记跟踪,所以 Storm 只能
保证每条记录最少被处理一次,但是允许从错误状态恢复时被处理多次。这就意味着可变更的
状态可能被更新两次从而导致结果不正确。
任一方面,Spark Streaming 仅仅需要在批处理级别对记录进行追踪,所以他能保证每个批
处理记录仅仅被处理一次,即使是 node 节点挂掉。虽然说 Storm 的 Trident library 可以保证
一条记录被处理一次,但是它依赖于事务更新状态,而这个过程是很慢的,并且需要由用户去
实现。
实现和编程 API
Storm 主要是由 Clojure 语言实现,Spark Streaming 是由 Scala 实现。如果你想看看这两
个框架是如何实现的或者你想自定义一些东西你就得记住这一点。Storm 是由 BackType 和
Twitter 开发,而 Spark Streaming 是在 UC Berkeley 开发的。
剩余18页未读,继续阅读












ansoncloud
- 粉丝: 5
- 资源: 31
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
最新资源
- Xilinx SRIO详解.pptx
- Informatica PowerCenter 10.2 for Centos7.6安装配置说明.pdf
- 现代无线系统射频电路实用设计卷II 英文版.pdf
- 电子产品可靠性设计 自己讲课用的PPT,包括设计方案的可靠性选择,元器件的选择与使用,降额设计,热设计,余度设计,参数优化设计 和 失效分析等
- MPC5744P-DEV-KIT-REVE-QSG.pdf
- 通信原理课程设计报告(ASK FSK PSK Matlab仿真--数字调制技术的仿真实现及性能研究)
- ORIGIN7.0使用说明
- 在VMware Player 3.1.3下安装Redhat Linux详尽步骤
- python学生信息管理系统实现代码
- 西门子MES手册 13 OpcenterEXCR_PortalStudio1_81RB1.pdf
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈



安全验证
文档复制为VIP权益,开通VIP直接复制

评论0