四個步驟:
1.構建dag(呼叫rdd上的運算元)
2.dagscheduler將dag切分stage(切分的依據是shuffle),將stage中生成的task以taskset的形式給taskscheduler
3.taskscheduler排程task(根據資源情況將task排程到相應的executor中執行)
4.executor接收task,然後將task丟入到執行緒池中執行
dag描述多個rdd的轉換過程,任務執行時,可以按照dag的描述,執行真正的計算(資料被操作的乙個過程)
dag是有邊界的:開始(通過sparkcontext建立rdd),結束(出發action,呼叫run job就是乙個完整的dag就形成了)
乙個rdd只是描述了資料計算過程中的乙個環節,而dag由一到多個rdd組成,描述了資料計算過程中的所有環節
下乙個dag中可能產生多種不同型別和功能的task,灰有不同的階段
dagscheduler:將乙個dag切分稱乙個到多個的stage,切分的依據是shuffle(寬依賴)
為什麼要切分stage?
乙個複雜的業務邏輯(將多台機器具有相同屬性的資料聚合到一台機器上:shuffle)
如果有shuffle,那麼就意味著前面階段產生的結果後,才能執行下乙個階段,下乙個階段的計算要依賴上乙個階段的資料。在同乙個stage中,會有多個運算元,我們稱其為pipeline(流水線)
shuffle的定義:
含義是洗牌,父rdd乙個分割槽中的資料如果給了子rdd的多個分割槽(只要存在可能),就是shuffle
shuffle會有網路傳輸資料,但有網路傳輸並不意味著就是shuffle
Spark執行流程
參考博文 apache spark 是專為大規模資料處理而設計的快速通用的計算引擎。hadoop雖然已成為大資料技術的事實標準,但其本身還存在諸多缺陷,最主要的缺陷是其mapreduce計算模型延遲過高,無法勝任實時 快速計算的需求,因而只適用於離線批處理的應用場景。磁碟io開銷大。每次執行時都需要...
Spark執行流程概述
cluster manager 在hadoop yarn上主要是指resourcemanager stage 每個job會被劃分為很多組task,作為乙個taskset,名為stage.stage的劃分和排程由dagscheduler負責。stage有非最終的stage shuffle map st...
Spark架構與執行流程
1.闡述hadoop生態系統中,hdfs,mapreduce,yarn,hbase及spark的相互關係。2.spark已打造出結構一體化 功能多樣化的大資料生態系統,請簡述spark生態系統。3.用 描述你所理解的spark執行架構,執行流程。4.軟體平台準備 linux hadoop。1.had...