[Spark]Spark、Yarn 入門

Spark在集羣上的運行模式

連接:

http://spark.apache.org/docs/latest/cluster-overview.html Component章節html

總結:

1 Each application gets its own executor processes,因此各application間是獨立的。
2 spark可使用多種 cluster manager,包括 Spark’s own standalone cluster manager, Mesos or YARN。
3 driver program 須要監聽和接收its executors,因此driver對於各executers必須是網絡可達的。
4 由於driver調度tasks on the cluster, 因此driver節點和worker節點最好在一個局域網中。shell

Spark重要概念
  • Driver:這是監督Spark做業或程序端到端執行的主程序。 它與集羣的資源管理器進行資源的協商,並將程序編排成儘量小的數據本地並行編程單元。
  • Executors:在任何Spark任務中,能夠有一個或多個executor,即執行由drive委派的較小任務的進程。 executor處理數據,最好是本地節點的,並將結果存儲在內存和/或磁盤中。
  • Job:這是對任何一組數據執行的操做的集合。 典型的word count job涉及從任意來源讀取文本文件,而後分離(splitting)並聚合(aggregating)這些字。
  • Task:一個job能夠拆分紅更小的單位,以被稱爲task的孤立任務進行操做。 每一個task由executor在一個數據分區上執行。
  • DAG:Spark引擎中的任何Spark工做都由DAG的操做表明。 DAG按順序表示Spark操做的邏輯執行。
  • Stages:Spark做業能夠按邏輯劃分爲多個stage,每一個stage表明一組具備相同的shuffle依賴關係的任務,即發生數據shuffle的任務。注:shuffle 是劃分 DAG 中 stage 的標識,同時影響 Spark 執行速度的關鍵步驟.

Spark on Yarn

Yarn
  • yarn最基本的思想是分離資源管理和job調度/監管。apache

  • yarn三大組件:
    • ResourceManager :負責整個集羣的資源管理和分配,是一個全局的資源管理系統
      • 兩個核心組件:Scheduler 、ApplicationsManager。
      • 調度器負責根據熟悉的容量、隊列等約束,將資源分配給各類正在運行的應用程序。調度器不執行應用程序狀態的監視或跟蹤。
      • 應用程序管理器負責接受做業提交,協商第一個容器以執行特定於應用程序的應用程序主機,並提供用於在失敗時從新啓動應用程序主容器的服務。每一個應用程序管理器負責從調度程序協商適當的資源容器,跟蹤其狀態並監視進度。
    • NodeManager:是每一個節點上的資源和任務管理器,它是管理這臺機器的代理,負責該節點程序的運行,以及該節點資源的管理和監控
    • ApplicationMaster: 用 戶 提 交 的 每 個 應 用 程 序 均 包 含 一 個 ApplicationMaster , 它 可 以 運 行 在ResourceManager 之外的機器上。負責與 RM 調度器協商以獲取資源(用 Container 表示)。
  • yarn 只提供運算資源的調度(用戶程序向 yarn 申請資源,yarn 就負責分配資源)
  • yarn與運行的用戶程序徹底解耦,意味着yarn上能夠運行各類類型的分佈式運算程序,好比 mapreduce、storm,spark,編程

Spark on Yarn

參考連接

https://blog.csdn.net/qq_33624952/article/details/79341034
https://blog.csdn.net/minge_se/article/details/79137085網絡

相關文章
相關標籤/搜索