spark streaming运行原理和架构

spark streaming是spark 核心API的拓展,是一个实时数据计算工具,具备高吞吐量、容错机制的特点,支持多种数据源获取数据,接受kafka、flume、HDFS等数据源的数据,通过处理之后,存储到HDFS、database等各种地方。

《spark streaming运行原理和架构》 streaming

streaming和storm之间的区别:

1.streaming支持批处理数据、storm对数据一条一条处理,storm的实时性高于streaming;

2.streaming的吞吐量高于storm;

3、容错机制不同:storm是acker(ack/fail消息确认机制)确认机制确保一个tuple被完全处理,Spark Streaming是通过存储RDD转化逻辑进行容错,也就是如果数据从A数据集到B数据集计算错误了,由于存储的有A到B的计算逻辑,所以可以从A重新计算生成B。

运行原理:

spark streaming将接收到的实时数据流信息,按照一定的时间间隔,对数据进行划分,交给spark engine引擎进行处理,最终得到一批批的结果。每一批数据在spark内核对应一个RDD,一批RDD构成Dstream。

《spark streaming运行原理和架构》 处理流程

《spark streaming运行原理和架构》 Dstream

对Dstream的操作都能够转变为对每个RDD的操作,这些操作构成一个DstreamGraph。

构建小数据片的DAG构建,对data进行切片处理

《spark streaming运行原理和架构》

Dstream Graph的依赖关系是计算和处理结果有关的RDD。

架构和作业流程:

streaming由三个模块构成

master:记录Dtream的依赖关系,并负责调度以生成新的RDD,相当于AM的功能,优化代码

worker:从网络接受数据并存储到内存中,执行RDD算子

client:从kafka等接受数据

作业流程:从网络中获取数据(把数据切成片),同时传入Dstream Graph(代码逻辑),经过job scheduler 变为spark job,交给job manage处理,job manage把数据处理成任务队列进行处理,最终再通过spark scheduler发送到worker处理

    原文作者:风暴之芽
    原文地址: https://www.jianshu.com/p/7122b50acb3e
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞