码迷,mamicode.com
首页 > 其他好文 > 详细

Spark Streaming源码解读之Receiver生成全生命周期彻底研究和思考

时间:2016-05-24 20:31:36      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:

本期内容 :

  • 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生成全生命周期彻底研究和思考

标签:

原文地址:http://www.cnblogs.com/yinpin2011/p/5521542.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!