参考文章:Spark 以及 spark streaming 核心原理及实践

1. Spark Streaming运行原理

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

SparkStreaming运行原理及简介

从原理上看,把传统的spark批处理程序变成streaming程序,spark需要构建什么?

SparkStreaming运行原理及简介

SparkStreaming运行原理及简介

需要构建4个东西:

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

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

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

  4. Receiver进行原始数据的产生和导入;Receiver将接收到的数据合并为数据块并存到内存或硬盘中,供后续batch RDD进行消费;

  5. 对长时运行任务的保障,包括输入数据的失效后的重构,处理任务的失败后的重调。

具体streaming的详细原理可以参考广点通出品的源码解析文章:

https://github.com/lw-lin/CoolplaySpark/blob/master/Spark%20Streaming%20%E6%BA%90%E7%A0%81%E8%A7%A3%E6%9E%90%E7%B3%BB%E5%88%97/0.1%20Spark%20Streaming%20%E5%AE%9E%E7%8E%B0%E6%80%9D%E8%B7%AF%E4%B8%8E%E6%A8%A1%E5%9D%97%E6%A6%82%E8%BF%B0.md#24

对于spark streaming需要注意以下三点:

  1> 尽量保证每个work节点中的数据不要落盘,以提升执行效率。

SparkStreaming运行原理及简介

 2> 保证每个batch的数据能够在batch interval时间内处理完毕,以免造成数据堆积。

SparkStreaming运行原理及简介

  3> 使用steven提供的框架进行数据接收时的预处理,减少不必要数据的存储和传输。从tdbank中接收后转储前进行过滤,而不是在task具体处理时才进行过滤。

SparkStreaming运行原理及简介

SparkStreaming运行原理及简介

 


原文链接:https://www.qcloud.com/community/article/770164

相关文章:

  • 2021-07-20
  • 2022-12-23
  • 2021-11-20
  • 2021-11-28
  • 2021-12-05
  • 2021-06-19
  • 2021-10-03
  • 2021-06-12
猜你喜欢
  • 2022-12-23
  • 2021-07-20
  • 2021-08-04
  • 2021-10-13
  • 2021-09-25
  • 2022-12-23
  • 2021-08-12
相关资源
相似解决方案