1. 程式人生 > >spark工作節點之Worker原理剖析

spark工作節點之Worker原理剖析

       這節我們講講Worker,Worker 計算資源的實際貢獻者,他要向Master彙報自身擁有多少cpu core和memory, 在master的指示下負責啟動executor,executor 是執行真正計算的苦力,由master來決定該程序擁有的core和memory數值,Master  掌管整個cluster的資源,主要是指cpu core和memory,但Master自身並不擁有這些資源,而Driver 是資源的實際佔用者,Driver會提交一到多個job,每個job在拆分成多個task之後,會分發到各個executor真正的執行。

      下面讓我們來看看master, worker, driver, executor 之間是怎麼打交道:


       下面直接進入原始碼分析:

首先讓我們從master開始看起:


master收到worker的註冊資訊後就會開始做出排程,進入schedule();

1.接下去看lauchDriver,會發現他向worker傳送資訊,要求worker啟動driver程序,然後我們緊接著到Worker類中,發現在launchDriver方法中,worker會new driverRunner,並且start。




2.然後再看看startExecutorsOnWorkers方法,一步一步跟下去,--> allocateWorkerResourceToExecutors --> launchExecutor ,然後worker收到資訊就開始new ExecutorRunner,然後start,最終會建立一個executor。








今天worker原始碼剖析就到這。

歡迎關注個人微信公眾號:BigData共享

文章來自:

https://mp.weixin.qq.com/s?__biz=MzU2NzA3OTEwMg==&tempkey=OTUzX1p1UzNGTm5oQjBsd3czV1dTZkxBUUc1c2dzTUlDcW1fR1hLWk8yUnN3SXNxa1JLS25McnJTSkw4aXNyN0hkSktmM3UxbjNTX1Vjc0w4QmFQRUNYeVczeVVZZ0dfWldmMnBhS1dyNjVMZkEtN3ZsMjg5bEh2Mi1ES2lHSlJaWWRyNVhHWS1ZR1duZmU5T0J1b0lVa3REb2phRXZHeXVwRUxmdFBfcEF%2Bfg%3D%3D&chksm=7ca3f8be4bd471a877fb0db4c55fee3e6fbc9c614425c44d0d49f829055228499facc3cb7494#rd