Spark原理-物理執行圖

玖狄.發表於2020-12-10
物理圖的意義
誰來計算RDD呢

Task

Task如何設計

1 . 第一個想法,每個RDD 的每個分割槽都對應一個Task
2 . 第二個想法,用一個Task計算所有RDD 中對應的分割槽
3 . 這兩個想法都有問題,分階段,採用資料流動的模型來進行設計

階段怎麼劃分

階段 + Task 就是執行RDD 的執行者

總結

資料是如何流動的

  1. 資料計算髮生在需要資料的地方,FinalRDD
  2. 第一個獲取資料的 RDD 是 firstRDD

小案例

val firstRdd = sc.parallelize(Seq("spark flink", "docker k8s", "spark docker"))
val splitRdd = firstRdd.flatMap(_.split(" "))
val reduceRdd = splitRdd.map((_, 1)).reduceByKey(_ + _)
val mapRdd = reduceRdd.map(item => s"${item._1},${item._2}")
mapRdd.foreach(println(_))

在這裡插入圖片描述

執行過程

在這裡插入圖片描述

相關文章