原创 Spark Shuffle原理與源碼解析

1、普通的shuffle過程①假設節點上有4個ShuffleMapTask,節點上有2個cup core②ShuffleMapTask的輸出,稱爲shuffle過程的第一個rdd,即MapPartitionRDD③每個ShuffleMap

原创 Spark Worker啓動服務原理與源碼解析

①啓動driver服務源碼分析Master.scala // 在某一個worker上啓動diver private def launchDriver(worker: WorkerInfo, driver: DriverInfo) {

原创 Spark DAGSchduler stage劃分原理與源碼解析

①stage劃分的算法的原理DAGSchduler對stage的劃分,從出發action操作開始,往前倒推。首先會爲最後一個rdd創建一個stage,往前倒推的過程中如果rdd之間存在寬依賴又創建一個新的stage,之前的最後一個rdd就

原创 Spark Job觸發流程原理與源碼解析

spark觸發job的流程示意圖:通過對wordcount案例解析,來分析spark job的觸發流程。wordcount代碼如下var linesRDD= sc.textFile('hdfs://') var wordsRDD = li

原创 Spark Master的註冊機制原理與源碼分析

Master的註冊原理,如下圖Master.scala // 處理application註冊請求 case RegisterApplication(description, driver) => // TOD

原创 Spark Executor原理與源碼解析

①Executor原理示意圖②Executor源碼解析CoarseGrainedExecutorBackend.scala override def onStart() { logInfo("Connecting to driv

原创 Spark Master主備切換原理與源碼分析

standalone模式下的master可以有兩個,而且支持主備切換,即當Active Master不能工作時,將Standby Master切換爲Active Master。Spark Master切換有兩種機制,一種是基於文件系統的如

原创 spark內核架構上的程序執行流程

對於spark程序開發,除了對spark程序熟練編程,向高手進階,瞭解spark內核源碼是承上啓下的一個階段。下面是spark程序執行流程圖。後續文字會對每一個階段以及重要的知識點,做深入分析,從源碼層面更深入瞭解原理。

原创 Spark Master狀態改變處理機制源碼分析

①driver的狀態改變case DriverStateChanged(driverId, state, exception) => state match { // 如果driver的狀態爲錯誤、完成、殺

原创 spark rdd之間的寬依賴和窄依賴

①task從hdfs讀取數據到linesRDD中,同一批task對linesRDD進行flatMap操作;②繼續對wordsRDD做map操作,記錄單詞次數③這個地方會劃分一個stage,新的一批task會提交到executor上,對pa

原创 nodejs快速入門(四)- NodeJS I/O

1、理解I/O    I/O(input / output),即輸入輸出,在電腦上的輸入輸出如音頻錄音是生意的輸入,聽音樂是聲音的輸出,在服務器上可以理解爲讀寫操作。2、併發    指一個時間段中有幾個程序都處於已啓動運行到運行完畢之間,

原创 廣告平臺精準推送系統解決方案架構

以上就是廣告精準推送的一個架構圖。廣告聯盟是由多家廣告提供商提供形成的一個組織,提供了多個平臺的收集到的數據進行整合,數據的分析、清理,計算、統計等,提供向需要投放廣告的廣告主提供了一個投放系統平臺。當用戶進入門戶網站或者app時,不同的

原创 Spark TaskSchduler任務分配源碼解析

在DAGSchduler.scala中,封裝taskset,使用TaskSchduler提交了taskset,下面通過源碼解析,TaskSchduler對task分配到executor和本地化級別。TaskSchdulerImpl.sca

原创 Spark基於Yarn的兩種提交模式

①sparn on yarn-cluster模式②sparn on yarn-client提交模式一般,sparn on yarn-client在測試的時候使用,dirver運行在客戶端,負責調度application。yarn-clie