美文网首页
大数据组件知识点总结(4) - Spark Streaming

大数据组件知识点总结(4) - Spark Streaming

作者: 千反田爱瑠爱好者 | 来源:发表于2018-08-22 11:37 被阅读71次

吞吐量高、容错能力强的实时流处理系统;

基本概念

DStream

  • 把接收到的数据流按时间间隔(Batch Duration)划分成一个个的RDD(DStream,持续的离散化流),按先进先出(队列)的方式来处理;
  • 对DStream的操作构建出依赖关系DAG(记录到DStreamGraph对象中,表示一个作业),待Streaming启动后、到达批处理时间时,才执行作业处理批次数据;
  • 每个输出操作对应一个作业。

窗口间隔、滑动间隔

除了批处理间隔,对于窗口操作还有窗口间隔和滑动间隔:

  • 窗口间隔:批处理数据个数由窗口间隔(即窗口持续时间)决定,默认比批处理间隔、滑动间隔大;
  • 滑动间隔:表示发生一次窗口滑动经过的时间,默认和批处理间隔相同;

三种间隔示意图:

                    -----------------------------------------
                    |   1   |   2   |   3   |   4   |   5   |
                    -----------------------------------------
    
    批处理间隔:    |<- 1 ->|
                            |<- 1 ->|
    窗口间隔:      |<-         3         ->|
                                    |<-         3         ->|
    滑动间隔:      |<-     2     ->|
  • 滑动后,窗口会移除最左边“滑动间隔”个的数据;
  • 新旧窗口有一个批处理间隔的数据重叠;
  • 窗口间隔 = 批处理间隔 + 滑动间隔。

容错设计

检查点

阶段性把数据存储到HDFS等可靠的存储系统中,提供驱动器容错(驱动失败重启后从检查点恢复)及控制失败时重算的状态数量(控制DAG中需要回溯的位置)。

驱动器容错

驱动器程序初始化可先判断是否存在检查点,如存在则会从检查点目录初始化,但程序崩溃时自动重启驱动器进程的程序需要自行实现。

工作节点容错

与Spark Core一样,从外部数据源接收到的数据都在多个工作节点上备份,根据谱系图可以从幸存备份中重算缺失数据。

接收器容错

在别的节点上重启失败的接收器,但是否丢失取决于数据源是否会重发、获取数据的方式(pull、push),因此需要考虑上游可靠性。

处理保证

基于容错保障,Streaming可为所有的转化操作提供“精确一次”执行的语义(幂等),但当输出到外部系统时,需要自行实现避免重复处理(如使用事务、设计幂等的更新操作)。

低延迟

最小的Batch Size可选取0.5~2s(Storm为100ms),能满足准实时需求。

高吞吐量

Spark节点支持线性扩展,可在短时间内(数秒)处理大规模数据(xGB/s),比Storm高2~5倍。

运行架构

  • 功能主要包括流处理引擎的数据流接收和存储,以及批处理作业的生成和管理;
  • 分为Driver端(ReceiverTracker、JobGenerator)和Client端(ReceiverSupervisor、Receiver);
  • 流程包括:启动流处理引擎、接收及存储数据流、处理数据流、输出处理结果。

相关文章

网友评论

      本文标题:大数据组件知识点总结(4) - Spark Streaming

      本文链接:https://www.haomeiwen.com/subject/nvbeiftx.html