spark程序是使用一个spark应用实例一次性对一批历史数据进行处理,spark streaming是将持续不断输入的数据流转换成多个batch分片,使用一批spark应用实例进行处理,侧重点在Steaming上面。

 谈谈Spark与Spark-Streaming关系(spark与sparkstreaming的区别) Spark Spark-Streaming 关系 第1张

Spark程序是使用一个spark应用实例一次性对一批历史数据进行处理,spark streaming是将持续不断输入的数据流转换成多个batch分片,使用一批spark应用实例进行处理,侧重点在Steaming上面。我们常说的Spark-Streaming依赖了Spark Core的意思就是,实际计算的核心框架还是spark。我们还是上一张老生常谈的官方图:

 谈谈Spark与Spark-Streaming关系(spark与sparkstreaming的区别) Spark Spark-Streaming 关系 第2张

从原理上看,我们将spark-streaming转变为传统的spark需要什么?

 谈谈Spark与Spark-Streaming关系(spark与sparkstreaming的区别) Spark Spark-Streaming 关系 第3张

 谈谈Spark与Spark-Streaming关系(spark与sparkstreaming的区别) Spark Spark-Streaming 关系 第4张

需要构建4个东西:

一个静态的 RDD DAG 的模板,来表示处理逻辑;

一个动态的工作控制器,将连续的 streaming data 切分数据片段,并按照模板复制出新的 RDD

DAG 的实例,对数据片段进行处理;

Receiver进行原始数据的产生和导入;Receiver将接收到的数据合并为数据块并存到内存或硬盘中,供后续batch RDD进行消费;对长时运行任务的保障,包括输入数据的失效后的重构,处理任务的失败后的重调。

至于上述过程具体怎么实现,我们会在spark-streaming源码分析的文章中一一解决。本文中图片文字来自于网络。

转载请说明出处
知优网 » 谈谈Spark与Spark-Streaming关系(spark与sparkstreaming的区别)

发表评论

您需要后才能发表评论