梳理一下spark中關於併發度涉及的幾個概念file,block,split,task,partition,rdd以及節點數、executor數、core數目的關係。
輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。
當spark讀取這些檔案作為輸入時,會根據具體資料格式對應的inputformat進行解析,一般是將若干個block合併成乙個輸入分片,稱為inputsplit,注意inputsplit不能跨越檔案。
隨後將為這些輸入分片生成具體的task。inputsplit與task是一一對應的關係。
隨後這些具體的task每個都會被分配到集群上的某個節點的某個executor去執行。
每個節點可以起乙個或多個executor。
每個executor由若干core組成,每個executor的每個core一次只能執行乙個task。
每個task執行的結果就是生成了目標rdd的乙個partiton。
注意: 這裡的core是虛擬的core而不是機器的物理cpu核,可以理解為就是executor的乙個工作執行緒。
而 task被執行的併發度 = executor數目 * 每個executor核數。
至於partition的數目:
3,job
spark中的job和mr中job不一樣不一樣。mr中job主要是map或者reduce job。而spark的job其實很好區別,乙個action運算元就算乙個job,比方說count,first等。
4, task
task是spark中最新的執行單元。rdd一般是帶有partitions的,每個partition的在乙個executor上的執行可以任務是乙個task。
5, stage
stage概念是spark中獨有的。一般而言乙個job會切換成一定數量的stage。各個stage之間按照順序執行。至於stage是怎麼切分的,首選得知道spark**中提到的narrow dependency(窄依賴)和wide dependency( 寬依賴)的概念。其實很好區分,看一下父rdd中的資料是否進入不同的子rdd,如果只進入到乙個子rdd則是窄依賴,否則就是寬依賴。寬依賴和窄依賴的邊界就是stage的劃分點
原文:
Spark 名詞解釋
梳理一下spark中關於併發度涉及的幾個概念file,block,split,task,partition,rdd以及節點數 executor數 core數目的關係。輸入可能以多個檔案的形式儲存在hdfs上,每個file都包含了很多塊,稱為block。當spark讀取這些檔案作為輸入時,會根據具體資...
SPARK基礎概念
可以認為應用是多次批量計算組合起來的過程,在物理上可以表現為你寫的程式包 部署配置。應用的概念類似於計算機中的程式,它只是乙個藍本,尚沒有執行起來。spark學習筆記三 spark原理介紹 spark最重要的api,使用者邏輯與spark集群主要的互動介面,它會和cluster master互動,包...
Spark基礎概念
spark 提供了乙個全面 統一的框架用於管理各種有著不同性質 文字資料 圖表資料等 的資料集和資料來源 批量資料或實時的流資料 的大資料處理的需求。包含spark 的基本功能 尤其是定義rdd 的api 操作以及這兩者上的動作。其他spark 的庫都是構建在rdd 和spark core 之上的。...