zoukankan      html  css  js  c++  java
  • 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 :

      

      

      

      

      

  • 相关阅读:
    洛谷 P3040 [USACO12JAN]贝尔分享Bale Share
    洛谷 P1994 有机物燃烧
    洛谷 P3692 [PUB1]夏幻的考试
    洛谷 P2117 小Z的矩阵
    洛谷 P1154 奶牛分厩
    洛谷 P1718 图形复原
    洛谷 P1900 自我数
    洛谷 P1964 【mc生存】卖东西
    洛谷 P1123 取数游戏
    hdu_2844_Coins(多重背包)
  • 原文地址:https://www.cnblogs.com/yinpin2011/p/5521542.html
Copyright © 2011-2022 走看看