SparkContext原始碼分析

2021-08-14 17:40:20 字數 1278 閱讀 6637

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平台的封裝,獲取感測器資料...