Spark架構


Spark遵循主從架構。它的叢集由一個主伺服器和多個從伺服器組成。

Spark架構依賴於兩個抽象:

  • 彈性分散式資料集(RDD)
  • 有向無環圖(DAG)

彈性分散式資料集(RDD)

彈性分散式資料集是可以儲存在工作節點上的記憶體中的資料項組。

  • 彈性:失敗時恢復資料。
  • 分散式:資料分布在不同的節點之間。
  • 資料集:資料組。

稍後將詳細了解RDD。

有向無環圖(DAG)

有向無環圖是一種有限的直接圖,它對資料執行一系列計算。每個節點都是RDD分割區,邊緣是資料頂部的轉換。

下面來了解Spark架構。

Spark架構

驅動程式

驅動程式是一個執行應用程式,由main()函式並建立SparkContext物件的進程。SparkContext的目的是協調spark應用程式,作為叢集上的獨立進程集執行。

要在群集上執行,SparkContext將連線到不同型別的群集管理器,然後執行以下任務:

  • 它在叢集中的節點上獲取執行程式。
  • 它將應用程式程式碼傳送給執行程式。這裡,應用程式程式碼可以通過傳遞給SparkContext的JAR或Python檔案來定義。
  • 最後,SparkContext將任務傳送給執行程式以執行。

叢集管理器

叢集管理器的作用是跨應用程式分配資源。Spark能夠在大量叢集上執行。
它由各種型別的叢集管理器組成,例如:Hadoop YARN,Apache Mesos和Standalone Scheduler。
這裡,獨立排程程式是一個獨立的Spark叢集管理器,便於在一組空機器上安裝Spark。

工作節點

  • 工作節點是從節點
  • 它的作用是在叢集中執行應用程式程式碼。

執行程式

  • 執行程式是為工作節點上的應用程式啟動的進程。
  • 它執行任務並將資料儲存在記憶體或磁碟儲存中。
  • 它將資料讀寫到外部源。
  • 每個應用程式都包含其執行者。

任務

  • 任務被傳送給一個執行程式的工作單位。