Spark架構師3 原始碼

2021-10-25 03:41:58 字數 1684 閱讀 1302

3、spark 的 task 分發和執行原始碼分析

4、spark 的 shuffle 機制原始碼分析

sparkcontext 類建構函式:

/*** todo_ma 馬中華

* 注釋:sparkcontex 初始化從這兒開始

*/try {

_conf = config.clone()

_conf.validatesettings()

/*** todo_ma 馬中華

* 注釋:第一步

* 建立 spark 執行環境 sparkenv

* 除了建立 sparkenv之外,還建立了各種 manager 物件。

*/// create the spark execution environment (cache, map output tracker, etc)

_env = createsparkenv(_conf, islocal, listenerbus)

sparkenv.set(_env)

/*** todo_ma 馬中華

/*** todo_ma 馬中華

* 注釋:第三步

* hadoop相關配置以及executor環境變數的設定

*/_hadoopconfiguration = sparkhadooputil.get.newconfiguration(_conf)

/*** todo_ma 馬中華

* 注釋: 第四步:建立心跳接收器

* 1、我們需要在「createtaskscheduler」之前註冊「heartbeatreceiver」,因為executor將在建構函式中檢索「heartbeatreceiver」

* 2、建立乙個heartbeatreceiver 的rpcendpoint註冊到rpcenv中,每分鐘給自己傳送expiredeadhosts,去檢測executor是否存在心跳,

* 3、如果當前時間減去最一次心跳時間,大於1分鐘,就會用coarsegrainedschedulerbackend將executor殺死

*/// we need to register "heartbeatreceiver" before "createtaskscheduler" because executor will

// retrieve "heartbeatreceiver" in the constructor. (spark-6640)

_heartbeatreceiver = env.rpcenv.setupendpoint(heartbeatreceiver.endpoint_name, new heartbeatreceiver(this))

/*** todo_ma 馬中華

* 注釋:第五步:建立任務排程taskscheduler

* 如果集群管理器是standalone模式:該方法返回(standaloneschedulerbackend,taskschedulerimpl)

*/// create and start the scheduler

val (sched, ts) = sparkcontext.createtaskscheduler(this, master, deploymode)

_schedulerbackend = sched

_taskscheduler = ts

啟動明細: sparkcontext 類createtaskscheduler方法

Spark原始碼分析 Spark整體架構

術語 描述使用者編寫的程式。driver端的sparkcontext sparkconf和執行在executors上使用者編寫的業務邏輯 即map reduce reducebykey等 driver 執行使用者編寫應用程式的main 方法並建立sparkcontext worker 具體執行應用程...

架構師之路 架構師思維的培養

公司的cms 綜合賦碼管理系統 是winform的cs架構。這套系統的架構師換了3屆,到現在已經幾年沒有架構師了。本來入職時,崗位目標就是這個 自動化架構師 後來和領導達成共識先爭取成為儲備架構師,因為架構首先是為業務服務的,而工控行業有許多特別的地方,不是普通的軟體技術堆疊就能做出優秀的工控軟體的...

小白聊架構師 怎麼成為架構師

還有人說 我早就掌握了物件導向設計,也看了 企業應用架構模式 架構之美 大型 技術架構 等等架構的書,為啥還當不了架構師?是啊,這高階,大氣,上檔次的架構師是怎麼煉成的?這裡講乙個小王的故事吧。又到了畢業季,一批應屆生進了乙個軟體公司,小王也在其中。新人進入公司,基本上都是從最底層做起,做那些最髒最...