大数据之SparkStreaming 完整使用 (第十一章)

SparkStreaming是Apache Spark提供的微批次实时数据处理框架,它简化了构建可扩展、容错的流应用。DStream作为核心抽象,代表时间序列上的数据流,由一系列RDD组成。SparkStreaming具备易用性、容错性和与Spark生态的良好整合。其特点包括动态背压机制,能根据处理能力调整接收速率,提高资源利用率。

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

一、SparkStreaming 概念

数据处理的方式角度
	流式数据处理
	批量数据处理

实时数据处理:毫秒级别
离线数据处理:小时or天级别

SparkStreaming 准实时(秒,分钟),微批次(时间)的数据处理框架

1、Spark Streaming 是什么

Spark 流使得构建可扩展的容错流应用程序变得更加容易。
Spark Streaming 用于流式数据的处理。Spark Streaming 支持的数据输入源很多,例如:Kafka、
Flume、Twitter、ZeroMQ 和简单的 TCP 套接字等等。数据输入后可以用 Spark 的高度抽象原语
如:map、reduce、join、window 等进行运算。而结果也能保存在很多地方,如 HDFS,数据库等。

在这里插入图片描述

和 Spark 基于 RDD 的概念很相似,Spark Streaming 使用离散化流(discretized stream)作为抽
象表示,叫作 DStream。DStream 是随时间推移而收到的数据的序列。在内部,每个时间区间收
到的数据都作为 RDD 存在,而 DStream 是由这些 RDD 所组成的序列(因此得名“离散化”)。所以
简单来将,DStream 就是对 RDD 在实时数据处理场景的一种封装。

2、Spark Streaming 的特点

➢ 易用
➢ 容错
➢ 易整合到 Spark 体系

3、Spark Streaming 架构

架构图

➢ 整体架构图
在这里插入图片描述

➢ SparkStreaming 架构图
在这里插入图片描述

4、背压机制

Spark 1.5 以前版本,用户如果要限制 Receiver 的数据接收速率,可以通过设置静态配制参
数“spark.streaming.receiver.maxRate”的值来实现,此举虽然可以通过限制接收速率,来适配当前
的处理能力,防止内存溢出,但也会引入其它问题。比如:producer 数据生产高于 maxRate,当
前集群处理能力也高于 maxRate,这就会造成资源利用率下降等问题。

为了更好的协调数据接收速率与资源处理能力,1.5 版本开始 Spark Streaming 可以动态控制
数据接收速率来适配集群数据处理能力。背压机制(即 Spark Streaming Backpressure): 根据
JobScheduler 反馈作业的执行信息来动态调整 Receiver 数据接收率。

通过属性“spark.streaming.backpressure.enabled”来控制是否启用 backpressure 机制,默认值
false,即不启用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值