SparkStreaming概述

SparkStreaming简介

Spark Streaming 是 Spark 核心 API 的扩展, 用于构建弹性, 高吞吐量, 容错的在线数据流的流式处理程序. 
总之一句话: Spark Streaming 用于流式数据的处理
数据可以来源于多种数据源: Kafka, Flume, Kinesis, 或者 TCP 套接字. 
接收到的数据可以使用 Spark 的负责元语来处理, 尤其是那些高阶函数像: map, reduce, join, 和window.
最终, 被处理的数据可以发布到 FS(文件系统), 数据库或者在线dashboards.
另外Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合.

在这里插入图片描述

在 Spark Streaming 中,处理数据的单位是一批而不是单条,而数据采集却是逐条进行的,
因此 Spark Streaming 系统需要设置间隔使得数据汇总到一定的量后再一并操作,这个间隔就是批处理间隔。
批处理间隔是 Spark Streaming 的核心概念和关键参数,它决定了 Spark Streaming 提交作业的频率和数据处理的延迟,同时也影响着数据处理的吞吐量和性能。

在这里插入图片描述

Spark Streaming 提供了一个高级抽象: discretized(离散化的) stream(DStream), DStream 表示一个连续的数据流.
DStream 可以由来自数据源的输入数据流来创建, 也可以通过在其他的 DStream 上应用一些高阶操作来得到.
在内部, 一个 DSteam 是由一个个 RDD 序列来表示的.

SparkStreaming特点

易用

在这里插入图片描述

容错

在这里插入图片描述

易整合到Spark体系

在这里插入图片描述

缺点

Spark Streaming 是一种“微量批处理”架构, 
和其他基于“一次处理一条记录”架构的系统相比(Storm), 它的延迟会相对高一些.

SparkStreaming架构

在这里插入图片描述

背压机制

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,即不启用。
  • 8
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早拾碗吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值