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屆,到現在已經幾年沒有架構師了。本來入職時,崗位目標就是這個 自動化架構師 後來和領導達成共識先爭取成為儲備架構師,因為架構首先是為業務服務的,而工控行業有許多特別的地方,不是普通的軟體技術堆疊就能做出優秀的工控軟體的...
小白聊架構師 怎麼成為架構師
還有人說 我早就掌握了物件導向設計,也看了 企業應用架構模式 架構之美 大型 技術架構 等等架構的書,為啥還當不了架構師?是啊,這高階,大氣,上檔次的架構師是怎麼煉成的?這裡講乙個小王的故事吧。又到了畢業季,一批應屆生進了乙個軟體公司,小王也在其中。新人進入公司,基本上都是從最底層做起,做那些最髒最...