Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考相关的知识,希望对你有一定的参考价值。
本期内容 :
- Receiver启动的方式设想
- Receiver启动源码彻底分析
多个输入源输入启动,Receiver启动失败,只要我们的集群存在就希望Receiver启动成功,运行过程中基于每个Teark启动都有可能运行失败。
启动一个应用程序的不同Receiver采用一个不同RDD的partion代表不同的Receiver ,然后启动的时候不同的partion执行层面是不同的Teark ,每个Teark启动的时候就真正的启动一个Receiver。
优点: 这种比较简单,就是使用Spark Core上的一个Job方式,简单并巧妙。
弊端:可能会失败,运行过程中这个Receiver失败就会影响执行,Job会失败,应用程序就会失败
源数据输入流程源码:
Receiver的启动流程源码 :
基于ReceiverInputDStreams来获取Receiver实例,ReceiverInputDStreams是来自于Driver 端,Spark提出的一个上层的抽象,Spark Streaming作业运行的时候是RDD的一个,对象代表了一切输入流,称源对象。
Receiver是逻辑级别的,然后把他们分布到worker节点上,之后在物理层面上运行,并运行在worker集合之上。
循环接收所有数据 :
数据的endpoint操作源码 :
调用StartReceiver :
备注:
-
- 资料来源于:王家林(Spark发行版本定制)
- 新浪微博:http://www.weibo.com/ilovepains
以上是关于Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考的主要内容,如果未能解决你的问题,请参考以下文章
Spark发行版笔记13:Spark Streaming源码解读之Driver容错安全性
(版本定制)第14课:Spark Streaming源码解读之State管理之updateStateByKey和mapWithState解密
Spark Streaming源码解读之Executor容错安全性
Spark 定制版:008~Spark Streaming源码解读之RDD生成全生命周期彻底研究和思考