《點點滴滴》Spark的排程模組和Spark容錯

2021-07-10 13:54:42 字數 1112 閱讀 5878

spark的排程模組分:dagscheduler和taskscheduler。

(一) dagscheduler模組:

主要負責分析使用者提交的應用,並根據計算任務的依賴關係建立dag,然後將dag劃分為不同的stage(階段),其中每乙個stage都是由可以併發的一組task組成,每乙個階段的task執行邏輯完全相同,只是作用於不同的資料上罷了。dag

scheduler將每一階段的task劃分完畢之後,會將這組task提交到task

scheduler

(二)taskscheduler模組:

task

scheduler通過cluster manager在集群中的某個worker上啟動executor,在executor中執行任務。

spark的容錯:

如果rdd1->rdd2->rdd3... 如果rdd2計算完畢,rdd被快取起來,如果rdd2中的partion2是由rdd1中的partion2計算而來,當rdd2中的partion2快取丟失時候不會從新計算rdd1的所有partion。而是只執行rdd1中的partion2,將計算結果傳遞給rdd2中的partion2。這個過程是根據linage資訊(lineage可以理解為:rdd含有如何從其他rdd衍生出來的 本rdd的資訊(這個資訊就是lineage))由於spark是內容計算模型,一般都可以認為計算的資料都在記憶體中,所以容錯是在內容中發生的:tachyon是乙個內容檔案系統。

關於tachyon:(一

)tachyon是乙個分布式記憶體檔案系統,可以在集群裡以訪問記憶體的速度來訪問存在tachyon裡的檔案。  (

二)tachyon容錯:

tachyon集群的元資料容錯,類似於hadoop中的namenode的元資料容錯。

tachyon的另乙個容錯是這個機制類似於rdd的lineage, tachyon會保留生成資料的lineage,在資料丟失時候通過lineage來恢復資料。

補充:關於lineage的個人理解:lineage有點類似乙個計算序列的公式,每一步計算都會把結果儲存起來,如果在當前計算時有資料丟失會根據公式從新返回到某一步(這一步恰好是產生丟失資料的一步)。然後從這一步執行計算把丟失的資料計算出來。(所以:lineage就是一種過程的描述資訊(log),根據這個資訊實現容錯)

acm 點點滴滴

qsort排序方法 六種qsort排序方法 本文中排序都是採用的從小到大排序 一 對int型別陣列排序 int num 100 sample int cmp const void a const void b qsort num,100,sizeof num 0 cmp 二 對char型別陣列排序 ...

sizeof 點點滴滴

1.靜態變數是存放在全域性資料區中的,sizeof計算棧中分配的大小,所以類或結構體中的靜態變數時不會計算在sizeof內的!2.sizeof和strlen的區別 1 sizeof操作符的結果型別是size t,它在標頭檔案中的typedef為unsigned int型別。該型別保證能容納實現所建立...

Elastic search點點滴滴

在打造集中化日誌那篇中,稍微提了下elastic search。elk打造集中化日誌 elastic search是elk的核心,寫的時候重點也放在它上面,不過還是覺得深度挖掘得不是太夠,所以決定再另寫一篇重點介紹下elastic search。正如elastic的本義一樣,es就是為擴充套件而生,...