大數據Spark系列之Spark基本概念解析

 

1)Application

用戶在 spark 上構建的程序,包含了 driver 程序以及在集羣上運行的程序代碼,物理機器上涉及了 driver,master,worker 三個節點。

2)Driver Program

創建 sc ,定義 udf 函數,定義一個 spark 應用程序所需要的三大步驟的邏輯:加載數據集,處理數據,結果展示。

3)Cluster Manager

集羣的資源管理器,在集羣上獲取資源的外部服務。

4)Worker Node

集羣中任何一個可以運行spark應用代碼的節點。Worker Node就是物理節點,可以在上面啓動Executor進程。

5)Executor

Executor 是一個應用程序運行的監控和執行容器,它的主要職責是:

  1. 初始化程序要執行的上下文 SparkEnv,解決應用程序需要運行時的 jar 包的依賴,加載類。
  2. ExecutorBackend 向 cluster manager 彙報當前的任務狀態,這一方面有點類似 hadoop的 tasktracker 和 task。

6)Jobs

包含很多 task 的並行計算,可以認爲是 Spark RDD 裏面的 action,每個 action 的觸發會生成一個job。 用戶提交的 Job 會提交給 DAGScheduler,Job 會被分解成 Stage,Stage 會被細化成 Task,Task 簡單的說就是在一個數據 partition 上的單個數據處理流程。

7)Stage

Stage 的劃分以 shuffle 和 result 這兩種類型來劃分。

8)Task

被送到 executor 上的工作單元。

9)Partition

Partition 類似 hadoop 的 Split,計算是以 partition 爲單位進行的,當然 partition 的劃分依據有很多,這是可以自己定義的,像 HDFS 文件,劃分的方式就和 MapReduce 一樣,以文件的 block 來劃分不同的 partition。

10)RDD(Resilient Distributed Datasets)

  1. 彈性分佈式數據集, 是分佈式內存的一個抽象概念,RDD提供了一種高度受限的共享內存模型。
  2. 它具備像MapReduce等數據流模型的容錯特性,並且允許開發人員在大型集羣上執行基於內存的計算。
  3. RDD是隻讀的、分區記錄的集合。
  4. RDD不需要物化。
  5. RDD作爲數據結構,本質上是一個只讀的分區記錄集合。一個RDD可以包含多個分區,每個分區就是一個dataset片段。RDD可以相互依賴。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章