spark core原始碼分析4 worker啟動流程
原始碼位置:org.apache.spark.deploy.worker.Worker.scala
首先檢視worker的main方法,與master類似,建立sparkConf,引數解析,以及構造worker物件並建立ActorRef用於對外或者本身的資訊互動。這裡masters引數可以設定多個
程式起來後,同樣是先執行akka 的preStart方法向Master註冊自己 看worker收到master的RegisteredWorker訊息會怎麼做?這裡要說一點,worker要註冊時並不知道哪臺是主,哪臺是備,所以向所有配置的master都傳送註冊資訊。主備都收到worker的註冊資訊之後,只有主才會反饋,並帶上自己的masterUrl資訊,worker以此來認定主master的actorRef用於真正的資訊互動
worker要通過心跳來保持與master的時刻連通,所以註冊成功之後,有一個connected標記是否連線正常,在changeMaster方法內部設定connected = true如果收到RegisterWorkerFailed訊息,則退出
下面看master接受到worker的心跳之後如何處理
由於worker註冊時,master已經將workerId存入idToWorker中,所以這裡走Some分支。很簡單,只是更新該worker的一個時間戳。這裡有必要說明一下None分支,在註冊訊息到達後,在master 的idToWorker和workers中都會儲存,但是當master檢測到worker超時時,將worker從idToWorker中刪除,這樣新的任務就選不了該worker了,但不刪除workers中的。workers中的只會在間隔很長一段時間之後仍然沒有心跳上來,才說明該worker真正無法再工作了,再從workers中刪除。這裡的None分支就是應對超時過後,心跳又繼續上來了,就向worker傳送重新註冊的訊息ReconnectWorker
至此,worker啟動流程以及主動傳送的訊息介紹完了,剩下的都是被動接收並處理的流程,在之後結合具體job介紹。。。
轉載:http://blog.csdn.net/yueqian_zhu/article/details/47976127
相關文章
- spark core原始碼分析2 master啟動流程Spark原始碼AST
- Spark原始碼分析之Worker啟動通訊機制Spark原始碼
- Flutter啟動流程原始碼分析Flutter原始碼
- apiserver原始碼分析——啟動流程APIServer原始碼
- Activity啟動流程原始碼分析原始碼
- Giraph原始碼分析(二)—啟動Master/Worker服務原始碼AST
- Spark job分配流程原始碼分析Spark原始碼
- spark core原始碼分析1 叢集啟動及任務提交過程Spark原始碼
- Tomcat原始碼分析--啟動流程Tomcat原始碼
- JobTracker啟動流程原始碼級分析原始碼
- Giraph原始碼分析(四)—— Master 如何檢查Worker啟動原始碼AST
- spark core原始碼分析3 Master HASpark原始碼AST
- Android Activity啟動流程原始碼分析Android原始碼
- Android原始碼分析:Activity啟動流程Android原始碼
- Giraph原始碼分析(四)—— Master 如何檢查Worker啟動成功原始碼AST
- 以太坊原始碼分析(39)geth啟動流程分析原始碼
- Apache Flink原始碼分析---JobManager啟動流程Apache原始碼
- 【原始碼解讀】asp.net core原始碼啟動流程精細解讀原始碼ASP.NET
- Spark on Yarn 任務提交流程原始碼分析SparkYarn原始碼
- Scrapy原始碼閱讀分析_2_啟動流程原始碼
- Android系統原始碼分析–Service啟動流程Android原始碼
- Sharding-JDBC 原始碼之啟動流程分析JDBC原始碼
- Android系統原始碼分析--Service啟動流程Android原始碼
- SpringBoot原始碼學習4——SpringBoot內嵌Tomcat啟動流程原始碼分析Spring Boot原始碼Tomcat
- Activiti 流程啟動及節點流轉原始碼分析原始碼
- NioEventLoop啟動流程原始碼解析OOP原始碼
- Android 系統原始碼-1:Android 系統啟動流程原始碼分析Android原始碼
- 【zookeeper原始碼】啟動流程詳解原始碼
- ReactNative原始碼篇:啟動流程React原始碼
- Spark 原始碼分析系列Spark原始碼
- spark streaming原始碼分析4 DStream相關APISpark原始碼API
- Spark core篇 Rpc原始碼1SparkRPC原始碼
- PackageManagerService啟動原始碼分析Package原始碼
- spark 原始碼分析之二十一 -- Task的執行流程Spark原始碼
- Spark3.0YarnCluster模式任務提交流程原始碼分析SparkYarn模式原始碼
- SpringBoot一站式啟動流程原始碼分析Spring Boot原始碼
- OpenRTMFP/Cumulus Primer(4)CumulusServer啟動流程分析Server
- flask 原始碼解析:應用啟動流程Flask原始碼