Spark Streaming介绍_第一章

Spark Streaming介绍
●官网
http://spark.apache.org/streaming/
●概述
Spark Streaming是一个基于Spark Core之上的实时计算框架
在这里插入图片描述
特点
易用:可以像编写离线批处理一样去编写流式程序,支持java/scala/python语言。
容错:SparkStreaming在没有额外代码和配置的情况下可以恢复丢失的工作
易整合到Spark体系:流式处理与批处理和交互式查询相结合。
在架构中的位置
在大数据计算模块中的实时计算模块
在这里插入图片描述
Spark Streaming原理
Spark Streaming中,会有一个接收器组件Receiver,作为一个长期运行的task跑在一个Executor上。Receiver接收外部的数据流形成input DStream
DStream会被按照时间间隔(自定)划分成一批一批的RDD
编写业务代码对DStream进行操作,实际就是对RDD进行操作,有多少个RDD业务代码就会执行多少次。
在这里插入图片描述
Streaming中的数据抽象
DStream:持续性的输入的数据流和经过各种Spark算子操作后的输出的结果数据流
本质上就是一系列时间上连续的RDD
准实时性计算/近实时性计算(不是100%的实时计算【5s中之内是可以接受的】)
在这里插入图片描述
在这里插入图片描述

Spark Core
Spark提供了多种资源调度框架,基于内存计算、提供了DAG的执行流程管理以及RDD的血缘关系来保证计算的快速和高容错性。RDD是Spark的核心概念
Spark SQL
SparkSQL基于Spark Core来优化sql查询,将sql的查询转为对应的RDD(DateFrame),并进行优化,简化了开发,提高了数据清洗的效率
Spark Streaming
SparkStreaming是基于SparkCore实现的流处理框架,通过微批的概念实现了流处理(DStream),可以将数据的延迟保证为最少500ms,是一个高吞吐高容错的流式处理框架。

DStream相关操作:
1、数据输入:Receiver
2、数据转化:Transformations(转换)
2.1每个批次的处理不依赖于之前批次的数据
2.2当前批次的处理需要使用之前批次的数据或者中间结果
2.2.1 UpdateStateByKey(func)
2.2.2 Window Operations 窗口操作
3、数据输出:Output Operations(输出)/Action
当某个Output Operations被调用时,spark streaming程序才会开始真正的计算过程
Transformations
常见Transformation—无状态转换:每个批次的处理不依赖于之前批次的数据
在这里插入图片描述
特殊的Transformations—有状态转换当前批次的处理需要使用之前批次的数据或者中间结果
有状态转换包括基于追踪状态变化的转换(updateStateByKey)和滑动窗口的转换
1.UpdateStateByKey(func)
2.Window Operations 窗口操作
Output/Action
Output Operations可以将DStream的数据输出到外部的数据库或文件系统
当某个Output Operations被调用时,spark streaming程序才会开始真正的计算过程(与RDD的Action类似)
在这里插入图片描述
总结
在这里插入图片描述

发布了238 篇原创文章 · 获赞 429 · 访问量 25万+

猜你喜欢

转载自blog.csdn.net/qq_45765882/article/details/105562468
今日推荐