Spark_SparkStreamimg介绍


1.Spark Streaming概述

Spark Streaming类似于Apache Storm,用于流式数据的处理。根据其官方文档介绍,Spark Streaming有高吞吐量容错能力强等特点。Spark Streaming支持的数据源有很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象操作如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。另外Spark Streaming也能和MLlib(机器学习)以及Graphx完美融合。
在这里插入图片描述


2.Spark Streaming几个特性

1、易用:
可以像编写离线批处理一样去编写流式程序,支持java/scala/python语言。
在这里插入图片描述

2、容错:
SparkStreaming在没有额外代码和配置的情况下可以恢复丢失的工作。
在这里插入图片描述

3、易整合到Spark体系
流式处理与批处理和交互式查询相结合
在这里插入图片描述


3.SparkStreaming与Storm的对比

在这里插入图片描述

spark开发语言:Scala,编程模型:DStream
Storm开发语言:Clojure,编程模型:Spout/Bolt


4.Spark Streaming原理与架构
4.1、Spark Streaming原理:

Spark Streaming 是基于spark的流式批处理引擎,其基本原理是把输入数据以某一时间间隔批量的处理,当批处理间隔缩短到秒级时,便可以用于处理实时数据流

4.2、Spark Streaming计算流程:

Spark Streaming是将流式计算分解成一系列短小的批处理作业。

这里的批处理引擎是Spark Core,也就是把Spark Streaming的输入数据按照batch size(如1秒)分成一段一段的数据(Discretized Stream),每一段数据都转换成Spark中的RDD(Resilient Distributed Dataset)

Spark Streaming中对DStream的Transformation操作变为针对Spark中对RDD的Transformation操作,将RDD经过操作变成中间结果保存在内存中

整个流式计算根据业务的需求可以对中间的结果进行缓存或者存储到外部设备

在这里插入图片描述

4.3 Spark Streaming实时性

Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解以及Spark的任务集的调度过程。

其最小的Batch Size的选取在0.1秒钟之间(Storm目前最小的延迟是100ms左右),所以Spark Streaming能够满足除对实时性要求非常高之外的所有流式准实时计算场景。

4.4 spark的架构

Spark Streaming使用微批次的架构。
流式计算当作一系列连续的小规模批处理来对待。
Spark Streaming从各种输入源中读取数据,并把数据分组为小的批次。新的批次按均匀的时间间隔创建出来。
在每个时间区间开始的时候,一个新的批次就创建出来,在该区间内收到的数据都会被添加到这个批次中。
时间区间结束时,批次停止增长
时间区间的大小是由批次间隔这个参数决定的。
批次间隔一般设在500毫秒到几秒之间,由应用开发者配置
每个输入批次都形成一个RDD,以 Spark 作业的方式处理并生成其他的 RDD
处理的结果可以以批处理的方式传给外部系统。高层次的架构如图 :
在这里插入图片描述
Spark Streaming的编程抽象是离散化流,也就是DStream。它是一个 RDD 序列,每个RDD代表数据流中一个时间片内的数据:
在这里插入图片描述

工作节点的结构的执行过程(结合下图理解):
1、Spark Streaming为每个输入源启动对应的接收器
2、接收器以任务的形式运行在应用的执行器进程中,从输入源收集数据并保存为 RDD。
3、收集到输入数据后会把数据复制到另一个执行器进程保障容错性(默认行为)。
4、数据保存在执行器进程的内存中(缓存行为),和缓存 RDD 的方式一样。
5、驱动器程序中的 StreamingContext 会周期性地运行 Spark 作业来处理这些数据,把数据与之前时间区间中的 RDD 进行整合
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值