spark原始碼是1.6.0版本
今天我們來分析一下sparkcontext
sparkcontext主要有三個功能:
taskscheduler task排程器 (主要講)
dagscheduler stage排程器
我們以standalone模式為例,進入createtaskscheduler
case spark_regex(sparkurl) =>
val scheduler = new taskschedulerimpl(sc)
val masterurls = sparkurl.split(",").map("spark://" + _)
val backend = new sparkdeployschedulerbackend(scheduler, sc, masterurls)
scheduler.initialize(ba
建立taskschedulerimpl物件,taskschedulerimpl是taskscheduler實現類,taskscheduler是乙個介面,接下來建立了乙個sparkdeployschedulerbackend物件,然後初始化scheduler,
def initialize(backend: schedulerbackend)
}schedulablebuilder.buildpools()
}
初始化的工作是給taskschedulerimpl賦值,然後設定排程器的排程模式fifo、fair,建立乙個scheduler的排程池,給taskschedulerimpl賦值後,程式會進入sparkdeployschedulerbackend
/**
** **/
client.start()
def start()
接著進入clientendpoint類中的registerwithmaster方法,registerwithmaster又呼叫tryregisterallmasters,進入 Spark 之 SparkContext 原理剖析
driver 程序被啟動時,會例項化 sparkcontext 物件,然後 sparkcontext 在構建 dagscheduler 和 taskscheduler 物件。這句話在 spark學習筆記之排程 基本上都會被提及,這篇就從原始碼角度來剖析這個問題。首先從 sparkcontext 原始...
《原始碼閱讀》原始碼閱讀技巧,原始碼閱讀工具
檢視某個類的完整繼承關係 選中類的名稱,然後按f4 quick type hierarchy quick type hierarchy可以顯示出類的繼承結構,包括它的父類和子類 supertype hierarchy supertype hierarchy可以顯示出類的繼承和實現結構,包括它的父類和...
Cartographer原始碼篇 原始碼分析 1
在安裝編譯cartographer 1.0.0的時候,我們可以看到 主要包括cartorgarpher ros cartographer ceres sover三個部分。其中,ceres solver用於非線性優化,求解最小二乘問題 cartographer ros為ros平台的封裝,獲取感測器資料...