原 Spark中Master原始碼分析(二)

2022-06-26 01:09:11 字數 1171 閱讀 5201

spark中master原始碼分析(一)

(2)恢復完畢,重新建立driver,完成資源的重新分配

case completerecovery => completerecovery()詳見下①

②relaunchdriver方法如下,將driver的轉態為relaunching,新增到即將建立的driver列表中,然後重新分配資源

private def relaunchdriver(driver: driverinfo)

④ launchdriver方法如下,根據worker和driver資訊建立worker

private def launchdriver(worker: workerinfo, driver: driverinfo)

(3)觸發leadership的選舉

case revokedleadership =>

(4)master註冊新的worker,然後重新分配資源

case registerworker(

id, workerhost, workerport, workerref, cores, memory, workeruiport, publicaddress) => else if (idtoworker.contains(id)) else else }}

(7)driver轉態發生變化,進行相應的操作

case driverstatechanged(driverid, state, exception) =>

}

(8)心跳機制,通過該機制master和worker保持聯絡

case heartbeat(workerid, worker) => else }}

(12)通過worker是否超時,從而判斷worker是否dead

case checkforworkertimeout =>

Mybatis中Logging模組的原始碼分析

週末又來到了公司吹吹空調,順便記錄下mybatis的點點滴滴。首先mybatis不定義日誌系統,完全依賴於第三方系統完成日誌記錄,利用介面卡模式完成實際操作,原始碼如下 1 定義乙個log介面,具有如下方法 public inte ce log2 然後引入第三方日誌,比如 loggingimpl,實...

原 Spark中Client原始碼分析(二)

繼續前一篇的內容。前一篇內容為 spark中client原始碼分析 一 client中唯一的main方法如下 def main args array string val conf new sparkconf val driverargs new clientarguments args if dr...

原 Spark中Client原始碼分析(一)

下面我們重點看clientendpoint,它是執行緒安全的。registerwithmaster方法如下,用於非同步註冊到所有的master上,如果沒有超過再次註冊的次數 3次 那麼每20s將會重新呼叫該方法申請註冊,如果註冊成功,所有的呼叫work和futures將會被取消。private de...