spark core源碼分析13 異常情況下的容錯保證

博客地址: http://blog.csdn.net/yueqian_zhu/



standalone模式下的框架圖如下:


異常分析1: worker異常退出



  1. worker異常退出,比如說有意識的通過kill指令將worker殺死
  2. worker在退出之前,會將自己所管控的所有小弟executor全乾掉
  3. worker需要定期向master改善心跳消息的,現在worker進程都已經玩完了,哪有心跳消息,所以Master會在超時處理中意識到有一個“分舵”離開了
  4. Master非常傷心,傷心的Master將情況彙報給了相應的Driver
  5. Driver通過兩方面確認分配給自己的Executor不幸離開了,一是Master發送過來的通知,二是Driver沒有在規定時間內收到Executor的StatusUpdate,於是Driver會將註冊的Executor移除


異常分析2: executor異常退出


Executor作爲Standalone集羣部署方式下的最底層員工,一旦異常退出,其後果會是什麼呢?

  1. executor異常退出,ExecutorRunner注意到異常,將情況通過ExecutorStateChanged彙報給Master
  2. Master收到通知之後,非常不高興,盡然有小弟要跑路,那還了得,要求Executor所屬的worker再次啓動
  3. Worker收到LaunchExecutor指令,再次啓動executor


異常分析3: master 異常退出



帶頭大哥如果不在了,會是什麼後果呢?

  • worker沒有彙報的對象了,也就是如果executor再次跑飛,worker是不會將executor啓動起來的,大哥沒給指令
  • 無法向集羣提交新的任務
  • 老的任務即便結束了,佔用的資源也無法清除,因爲資源清除的指令是Master發出的

個人覺得這位同學講的很是生動形象!!!點個贊


引用:http://www.cnblogs.com/hseagle/p/3791779.html

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章