由於spark的懶執行,在驅動程式呼叫乙個action之前,spark應用不會做任何事情。
針對每個action,spark排程器就建立乙個執行圖(execution graph)和啟動乙個spark job。
每個job有多個 stage組成,這些stage就是實現最終的rdd所需的資料轉換的步驟。乙個寬依賴劃分為乙個stage。
每個stage由多個tasks組成,這些tasks就表示每個平行計算並且會在多個執行器上執行。
spark 的頂層排程層使用 rdd 的依賴為每個 job 建立乙個由 stages 組成的 dag(有向無環圖). 在 spark api 中, 這被稱作 dag 排程器(dag scheduler).
乙個spark job 的執行是被 dag 來處理.
dag 為每個 job 構建乙個 stages 組成的圖表, 從而確定執行每個 task 的位置, 然後傳遞這些資訊給 tasksheduler. tasksheduler 負責在集群中執行任務.
spark job 處於 spark 執行層級結構中的最高層. 每個 spark job 對應乙個 action, 每個 action 被 spark 應用中的驅動程式所呼叫.
可以把 action 理解成把資料從 rdd 的資料帶到其他儲存系統的元件(通常是帶到驅動程式所在的位置或者寫到穩定的儲存系統中)
只要乙個 action 被呼叫, spark 就不會再向這個 job 增加新的東西.
stage 由 tasks 組成. 在執行層級中, task 是最小的執行單位. 每乙個 task 表現為乙個本地計算.
乙個 stage 中的所有 tasks 會對不同的資料執行相同的**.(程式**一樣, 只是作用在了不同的資料上)
乙個 task 不能被多個執行器來執行, 但是, 每個執行器會動態的分配多個 slots 來執行 tasks, 並且在整個生命週期內會並行的執行多個 task. 每個 stage 的 task 的數量對應著分割槽的數量, 即每個 partition 都被分配乙個 task
PHP的構成及工作原理
php原始碼主要目錄有下列幾個 常用的兩個sapi是cli和fpm,另外還有embed,這三種是比較典型的sapi,除此還有litespeed和apache2handle,除了cli和fpm其他都是配合其他應用使用的。main php的主要 主要是輸入 輸出 web通訊,以及php框架的初始化操作 ...
PHP的構成及工作原理
php原始碼主要目錄有下列幾個 常用的兩個sapi是cli和fpm,另外還有embed,這三種是比較典型的sapi,除此還有litespeed和apache2handle,除了cli和fpm其他都是配合其他應用使用的。main php的主要 主要是輸入 輸出 web通訊,以及php框架的初始化操作 ...
磁碟構成及更換磁頭
以下是磁碟的內部構造,硬碟讀寫原理是音圈馬達帶動磁頭在磁軌上的高速運轉讀寫。參考鏈結。碟片 就是儲存資料的地方,從圖中可以看出,碟片已經被灰色的線條分割成很多小的區域,每乙個區域就代表乙個扇區。主軸 主軸是由軸承和馬達構成的,主要是帶動碟片的高速運轉,根據馬達的不同,可以分為低速盤區和高速盤區。磁頭...