大数据技术基础第九章:Spark Streaming编程
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
reduceByKey(func, [numTasks])
transform(func) updateStateByKey(func)
DStream常用转换
Байду номын сангаас
9.3.2 Window操作
• 窗口可由多个连续的时间片组成,Spark Streaming允许 通过窗口的滑动对数据进行转换或者进行数据的统计。窗 口滑动是指前后窗口在某个时间片进行重叠,是指基于窗 口的操作或者计算。
9.3.1 DStream转换
Transformation算子 map(func) flatMap(func) filter(func) repartition(numPartitions) union(otherStream) count() reduce(func) countByValue() 含义 通过func函数将源DStream映射到新的DStream中 与map类似,但每个输入项可以被映射到0以上输出项目 选择源DStream中的满足func过滤条件的记录,形成新的 DStream 重新将DStream的分区为numPartitions个 合并其它的流,得到新的DStream 计算DStream中每个RDD的元素个数 DStream中每个RDD进行聚合,形成新的DStream K型的元素DStream,返回一个新的DStream(K,Long) 对,其中每个键的值是它在源DStream 的RDD出现的频率 (K, V)键值对形式的DStream,按每个键进行reduce函数, 返回新的DStream (K, V)对 转换操作(同transformWith)允许任意RDD转换为新RDD 功能,要在一个DStream中应用。 按建更新DStream的状态,并返回新状态的DStream。该操 作可以保持任意的状态,同时不断用新的信息进行更新。
含义 打印在此 DStream 中生成的每个 RDD 的 前十个元素。 最根本的输出操作符。应用一个函数, 以便从流生成每个RDD。这个函数应具 有的作用,如打印输出,节省了 RDD到 外部文件,或记录通过网络到一个外部 系统。 保 存 此 DStream 的 内 容 序 列 化 对 象 的 SequenceFile 。基于前缀和后缀生成在 每个批次间隔的文件名。 保存此 DStream 的内容作为文本文件。 基于前缀和后缀生成在每个批次间隔的 文件名。 保存此DStream的内容作为Hadoop的文 件。基于前缀和后缀生成在每个批次间 隔的文件名.
Cartner曲线2013年针对Big Data的预测情况
9.2 Spark Streaming工作机制
HDFS支持多种数据源
1. 计算流程
Spark Streaming批处理
2. 任务调度流程
Driver
ReceiverTracker JobGenerator JobScheduler DAGScheduler TaskScheduler
接收行的输入并拆分为单词
9.3.1 DStream转换
• DStream有两种操作:转换和输出操作。DStream转换, 与Spark RDD转换类似,也使用一个或多个DStream操作 来创建新的DStream和转换后的数据。
9.3.1 DStream转换
• DStream有两种操作:转换和输出操作。DStream转换, 与Spark RDD转换类似,也使用一个或多个DStream操作 来创建新的DStream和转换后的数据。
4. 实时性
• Spark Streaming将流式计算分解成多个Spark Job,对 于每一段数据的处理都会经过Spark DAG图分解以及 Spark的任务集的调度过程。 • 1. 数据量大(Volume) • 2. 类型繁多(Variety) • 3. 价值密度低(Value) • 4. 速度快时效高(Velocity) • 5. 永远在线(Online)
addBlock updateBlockInfo BlockManagerMaster
Executor
Task Receiver
Executor
BlockManagerSlave
BlockManagerSlave
Spark Streaming任务调度
3. 容错性
Spark Streaming中RDD Lineage关系图
9.3.2 Window操作
Window操作
9.3.3 DStream输出
• 当输出运算符被调用时,它触发一个流的计算。
输出操作 print()
foreachRDD(fun c)
saveAsObjectFil es(prefix, [suffix]) saveAsTextFiles( prefix, [suffix]) saveAsHadoopF iles(prefix, [suffix])
5. 扩展性与吞吐量
Spark Streaming与Storm吞吐量比较图
9.3 Spark的DStream流
• 离散流DStream(Discretized Stream)是Spark Streaming对内部实时数据流的抽象描述,即处理的一个 实时数据流,在Spark Streaming中对应于一个DStream 实例。DStream将连续的数据持久化、离散化,然后进行 批量处理。
第1章 大数据技术概述
• • • • • • 主要内容: 9.1 Spark Streaming介绍 9.2 Spark Streaming工作机制 9.3 Spark的DStream流 9.4 Spark Streaming案例 9.5 集群处理与性能
9.1 Spark Streaming介绍
• 随着技术的不断进步及各种智能设备的使用,数据流无处 不在,它具有如下特点: • 数据一直处在变化中 • 数据无法回退 • 数据一直源源不断的涌进 • 对数据流具有实时处理功能的框架称为实时流处理框架。 实时流处理框架除了UC Berkeley AMPLab的Spark Streaming,目前业界已经诞生了很多。 • S4、Storm、StreamBase等。