1. 什麼是job
job簡單講就是提交給spark的任務。
2. 什麼是stage
stage是每乙個job處理過程要分為的幾個階段。
3什麼是task
task是每乙個job處理過程要分幾為幾次任務。task是任務執行的最小單位。最終是要以task為單位執行在executor中。
3. job和stage和task之間有什麼關係
job----> 乙個或多個stage---> 乙個或多個task
下圖是乙個job分成了三個stage:
5.乙個stage的task的數量是有誰來決定的?
是由輸入檔案的切片個數來決定的。在hdfs中不大於128m的檔案算乙個切片(預設128m)。通過運算元修改了某乙個rdd的分割槽數量,task數量也會同步修改。
6.乙個job任務的task數量是由誰來決定的?
乙個job任務可以有乙個或多個stage,乙個stage又可以有乙個或多個task。所以乙個job的task數量是 (stage數量 * task數量)的總和。
上圖就是job1有3個task。
7.每乙個stage中的task最大的並行度?
並行度:是指指令並行執行的最大條數。在指令流水中,同時執行多條指令稱為指令並行。
理論上:每乙個stage下有多少的分割槽,就有多少的task,task的數量就是我們任務的最大的並行度。
(一般情況下,我們乙個task執行的時候,使用乙個cores)
如圖所示,cores為3,那麼最大的並行度就是3。
8.如果我們的task數量超過這個cores的總數怎麼辦?
先執行cores個數量的task,然後等待cpu資源空閒後,繼續執行剩下的task。
9.spark執行時讀條中的內容講解
satge11: 當前的satge編號
(5+4)/9:
9:當前stage的task的數量,5:已完成的task數量,4:等待執行的task數量。
Spark中executor memory引數詳解
我們知道,spark執行的時候,可以通過 executor memory 來設定executor執行時所需的memory。但如果設定的過大,程式是會報錯的,如下 555.png 那麼這個值最大能設定多少呢?本文來分析一下。文中安裝的是spark1.6.1,安裝在hadoop2.7上。1 相關的2個引...
Spark基礎(三)Spark中的任務執行
容錯機制 spark的架構特點 根據客戶端提交的jar包劃分出來乙個個的rdd,根據rdd之間的lineage關係劃分dag。劃分dag的目的是為了劃分stage。2 dag通過dagscheller劃分為stage 再劃分為taskset 根據劃分出來的dag,將dag送個dagscheduler...
spark更改分割槽 Spark中的分割槽方法詳解
一 spark資料分割槽方式簡要 在spark中,rdd resilient distributed dataset 是其最基本的抽象資料集,其中每個rdd是由若干個partition組成。在job執行期間,參與運算的partition資料分布在多台機器的記憶體當中。這裡可將rdd看成乙個非常大的陣...