PySpark 学习笔记六

Spark Streaming是一个可扩展的容错流处理系统,基于RDD批处理模型加速处理。它使用Discreteized Stream(DStream)作为数据流的抽象,建立在RDD之上,与Spark的MLlib, SQL, DataFrame和GraphX集成。Spark Streaming支持Apache Kafka, Flume等多种数据源,适用于实时ETL、异常检测、数据丰富和复杂会话分析。应用数据流始于Spark Streaming Context,通过driver和executor处理流源数据,最终将结果存储在各种数据存储中。" 107378779,9854788,Python基础知识:元组详解与操作,"['Python', '元组', '数据结构', '序列操作', '编程基础']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

6 Structured Streaming
6.1 What is Spark Streaming?

Spark Streaming的核心是一个可扩展的容错流系统,它采用RDD批处理模式(即批量处理数据)并加快速度。
如下图所示,Spark Streaming接收输入数据流,并在内部将该数据流分成多个较小的批次(其大小基于批处理间隔)。 Spark引擎将这些批量的输入数据处理成批量的结果集。
这里写图片描述
Spark Streaming的关键抽象是Discreteized Stream(DStream),它代表了前面提到的构成数据流的小批量。
DStreams建立在RDD之上,允许Spark开发人员在RDD和批处理的相同环境中工作,现在只可应用于流问题。另外一个重要的方面是,由于使用Apache Spark,Spark Streaming集成了MLlib, SQL,DataFrames和GraphX。
下面的图描述了Spark Streaming的基本组件:
这里写图片描述

Spark Streaming是一个高级API,为有状态操作提供了一次性的容错。 Spark Streaming内置了接收器,可以承担很多来源,最常见的是Apache Kafka,Flume,HDFS /S3,Kinesis和Twitter。

6.2 Why do we need Spark Streaming?

大规模的实时开发可操作能力为企业提供了竞争优势。无论是在检测欺诈性交易,提供传感器异常实时检测,还是对下一个病毒式推特做出反应,流数据分析在数据科学家和数据工程师的工具箱中变得越来越重要。 Spark Streaming能够以准实时的方式容易地实现较为复杂的统计需求。
Spark Streaming有四个广泛的用例:

  • Streaming ETL:数据在被推入下游之前不断被清理和汇总。这通常是为了减少最终数据存储中的数据量。
  • Triggers::实时检测异常行为或事件触发器下游行动。
  • Data enrichment:加入其他数据集的实时数据可以进行更丰富的分析。例如,包括实时天气信息和航班信息,以建立更好的旅游警报。
  • Complex sessions and continuous learning:利用多组与实时流相关的数据不断地分析或更新机器学习模型。例如,与在线游戏关联的用户活动流,使我们能够更好地细分用户。

6.3 What is the Spark Streaming application data flow?

下图提供了Spark的driver,workers,流源和目标之间的数据流:
这里写图片描述
这一切都以Spark Streaming Context开始,由上图中的ssc.start()表示:

  1. 当Spark Streaming Context启动时,driver将分配给executor(即workers )一个长期任务。
  2. Executor(本图中的Executor1)上的接收者从流式源接收数据流。随着输入的数据流,接收器将流分成块并将这些块保存在内存中。
  3. 这些数据块也被复制到另一个Executor,以避免数据丢失。
  4. 数据块的 ID 信息 被传送到 driver 中的 Block Management Master上。
  5. 对于Spark Streaming Context中配置的每个批处理间隔(通常这是每1秒),driver将启动Spark任务处理块。然后将这些块保存到任意数量的目标数据存储中,包括云存储(例如S3/WASB等),关系数据存储(例如MySQL,PostgreSQL等),以及NoSQL存储。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值