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就是為擴充套件而生,...