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

2018-08-22  本文已影响71人  千反田爱瑠爱好者

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

基本概念

DStream

窗口间隔、滑动间隔

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

三种间隔示意图:

                    -----------------------------------------
                    |   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倍。

运行架构

上一篇 下一篇

猜你喜欢

热点阅读