第一章 SparkStreaming概述

数据处理的方式角度:

        流式( Streaming)数据处理(来数据就处理)

        批量(batch) 数据处理(等数据来一批才处理,如果大批量,就变成离线了)

        微批量数据处理 :数据一小批一小批的进行处理的方式

        批量是集合,流式是单一的数据类型

数据处理延迟的长短

        实时数据处理:毫秒级别

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

        准实时数据处理 : 数据处理的延迟单位在秒,分钟

        有界数据流 :数据有开始,有结束的数据流。有边界的意思,文件和内存数据都是有界数据流。

        无界数据流 :数据有开始,没有结束的数据流。不知什么时候结束,无法计算。如:Socket网络数据(无状态数据)。如果想要计算,需要将无界数据流切分成有界数据量(几秒切分)

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

SparkStreaming是基于SParkCore开发的一个功能模块(本质还是rdd,底层还是driver和executor),无法实现真正地流式数据处理,实时数据处理。专门用于流式数据处理

    1.  Spark Streaming是什么

 

 

Spark流使得构建可扩展的容错流应用程序变得更加容易。

Spark Streaming用于流式数据的处理。Spark Streaming支持的数据输入源很多,例如:Kafka、Flume、Twitter、ZeroMQ和简单的TCP套接字等等。数据输入后可以用Spark的高度抽象原语(这里的方法叫原语,同rdd中叫方法为算子)如:map、reduce、join、window等进行运算。而结果也能保存在很多地方,如HDFS,数据库等。

DStreams是是构建在Spark RDD之上的一款流处理工具。言外之意Spark DStream并不是严格意义的流处理。底层通过将RDD在时间轴上拆解成多个小的RDD-macro batch(构建在RDD之上的微批,严格意义上并不是真正的流),掺水了

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

 

之前都是一个文件一个RDD,现在是周期性的产生RDD,几秒钟一个。

由于DStream是构建在RDD之上,对习惯了批处理的工程师使用上比较友好。很多大数据工程师都有着MapReduce使用经验,如果使用批去模拟流,比较容易接受。同时DStream是构建在RDD(批处理)之上,因此在使用角度上讲,DStream操作流就好比在操作批处理。因此在使用难度上比Strom相对来说要简单。由于Spark框架的实现的核心是偏向批处理的,流处理只是从批中演变而来,因此DStream在做流处理的啥时候延迟较高。

    1.  Spark Streaming的特点
  • 易用

  • 容错

  • 易整合到Spark体系

    1.  Spark Streaming架构
      1.  架构图
  • 整体架构图

  • SparkStreaming架构图

1.3.2 背压机制

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,即不启用。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值