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
相關文章
- Tomcat原始碼分析--啟動流程Tomcat原始碼
- Flutter啟動流程原始碼分析Flutter原始碼
- Activity啟動流程原始碼分析原始碼
- apiserver原始碼分析——啟動流程APIServer原始碼
- Giraph原始碼分析(二)—啟動Master/Worker服務原始碼AST
- SpringBoot原始碼學習4——SpringBoot內嵌Tomcat啟動流程原始碼分析Spring Boot原始碼Tomcat
- Android Activity啟動流程原始碼分析Android原始碼
- Android原始碼分析:Activity啟動流程Android原始碼
- Netty啟動流程及原始碼分析Netty原始碼
- Giraph原始碼分析(四)—— Master 如何檢查Worker啟動原始碼AST
- containerd 原始碼分析:啟動註冊流程AI原始碼
- Apache Flink原始碼分析---JobManager啟動流程Apache原始碼
- Giraph原始碼分析(四)—— Master 如何檢查Worker啟動成功原始碼AST
- 以太坊原始碼分析(39)geth啟動流程分析原始碼
- Android系統原始碼分析--Service啟動流程Android原始碼
- Android系統原始碼分析–Service啟動流程Android原始碼
- Sharding-JDBC 原始碼之啟動流程分析JDBC原始碼
- 【原始碼解讀】asp.net core原始碼啟動流程精細解讀原始碼ASP.NET
- SpringBoot2 | SpringBoot啟動流程原始碼分析(一)Spring Boot原始碼
- Scrapy原始碼閱讀分析_2_啟動流程原始碼
- Android 系統原始碼-1:Android 系統啟動流程原始碼分析Android原始碼
- SpringBoot一站式啟動流程原始碼分析Spring Boot原始碼
- Spark core篇 Rpc原始碼1SparkRPC原始碼
- NioEventLoop啟動流程原始碼解析OOP原始碼
- Spark 原始碼分析系列Spark原始碼
- spark 原始碼分析之二十一 -- Task的執行流程Spark原始碼
- Spark3.0YarnCluster模式任務提交流程原始碼分析SparkYarn模式原始碼
- 【zookeeper原始碼】啟動流程詳解原始碼
- SpringBoot原始碼解析-啟動流程(二)Spring Boot原始碼
- SpringBoot原始碼解析-啟動流程(一)Spring Boot原始碼
- Spring原始碼解析02:Spring IOC容器之XmlBeanFactory啟動流程分析和原始碼解析Spring原始碼XMLBean
- SpringBoot配置外部Tomcat專案啟動流程原始碼分析(長文)Spring BootTomcat原始碼
- Spark原始碼解析-Yarn部署流程(ApplicationMaster)Spark原始碼YarnAPPAST
- Spark RPC框架原始碼分析(三)Spark心跳機制分析SparkRPC框架原始碼
- .net core 原始碼分析原始碼
- EF Core 原始碼分析原始碼
- [原始碼解析] 並行分散式框架 Celery 之 worker 啟動 (2)原始碼並行分散式框架
- [原始碼解析] 並行分散式框架 Celery 之 worker 啟動 (1)原始碼並行分散式框架
- nodejs啟動流程分析NodeJS