彈性:rdd的資料預設是存放在記憶體中,但是記憶體資源存在不足的情況,spark會將rdd資料寫入磁碟(記憶體和磁碟切換)
容錯:如果任務執行失敗,可以自動從失敗節點進行恢復,由於某個節點宕機了導致資料丟失,rdd會根據自己的資料**重新計算一遍,計算失敗的partition的資料
基於血緣關係:代表具體的任務的來龍去脈,對映hive 表是由哪些表進行生成的或者是最終作用哪些表
分布式:基於集群
資料集:針對乙個rdd有多個partition
dag,有向無環圖,directed acyclic graph的縮寫,常用於建模。spark中使用dag對rdd的關係進行建模,描述了rdd的依賴關係,這種關係也被稱之為lineage,rdd的依賴關係使用dependency維護,參考spark rdd之dependency,dag在spark中的對應的實現為dagscheduler。
基礎概念
介紹dagscheduler中的一些概念,有助於理解後續流程。
名詞解釋
job呼叫rdd的乙個action,如count,即觸發乙個job,spark中對應實現為activejob,dagscheduler中使用集合activejobs和jobidtoactivejob維護job
stage
代表乙個job的dag,會在發生shuffle處被切分,切分後每乙個部分即為乙個stage,stage實現分為shufflemapstage和resultstage,乙個job切分的結果是0個或多個shufflemapstage加乙個resultstage
task
最終被傳送到executor執行的任務,和stage的shufflemapstage和resultstage對應,其實現分為shufflemaptask和resulttask
建立 rdd 物件;sparkcontext 負責計算 rdd 之間的依賴關係,構建 dag;dagschedule 負責把 dag 圖反向解析成多個階段,每個階段中包含多個任務,每個任務會被任務排程器分發給工作節點上的 executor 上執行。
spark學習(二)RDD和DAG
rdd resilient distributed dataset 叫做彈性分布式資料集,是spark中最基本也是最重要的概念之一。它是spark中一種基本的資料抽象,有容錯機制並可以被並行操作的元素集合,具有唯讀 分割槽 容錯 高效 無需物化 可以快取 rdd依賴等特徵。rdd的知識較為龐雜,這裡...
spark認知理解(一)RDD與DAG
目錄 1.spark介紹 2.rdd理解 2.1 rdd概念 2.2 partition分片 2.3 partitioner 3.寬窄依賴 4.stage劃分 4.spark與dag 註腳 spark是基於記憶體計算的大資料平行計算框架。特性 dag執行引擎,可分布式,基於記憶體計算。rdd 是彈性...
spark 的RDD分割槽
rdd的倆種建立方 1.從集合中建立rdd,spark主要提供了兩種函式 parallelize和makerdd 使用parallelize 從集合建立 scala val rdd sc.parallelize array 1,2,3,4,5,6,7,8 使用makerdd 從集合建立 scala ...