Hadoop YARN 架構
Hadoop YARN代表又一個資源管理器,隨著 Hadoop 2.x 的出現,YARN 成為 Hadoop 生態系統的一部分,
YARN 管理叢集環境中的資源,在 Hadoop 2.x 之前我們沒有任何資源管理器嗎?
當然,在 Hadoop 2.x 之前我們有一個資源管理器,它被稱為Job Tracker。
那麼什麼是JobTracker?
JobTracker (JT) 用於管理叢集資源並執行 MapR 或 MapReduce 作業執行,這意味著資料處理。JT 配置和監控每個正在執行的任務。如果一個任務失敗,它會重新分配一個新的槽讓任務重新開始。任務完成後,它會釋放資源並清理記憶體。
JT 用於執行很多工,這種方法也有一些缺點。我沒有在 Hadoop 1.x 上工作過,但試圖在下面列出其中的一些。
上述方法的缺點:
- 它有一個元件:JobTracker 來執行許多活動,如資源管理、作業排程、作業監控、重新排程作業等,這給單個元件帶來了很大的壓力。
- JobTracker 是單點故障,這使得 JT 資源具有高可用性,因此如果 JT 失敗,則所有任務都將重新啟動。
- 靜態資源分配,由於 map 和 reduce 槽是預定義和保留的,即使槽處於空閒狀態,它們也不能用於其他應用程式。
以上是 Hadoop 1.x 工作方式的一些主要缺點。
所以下一個想到的問題是,YARN 如何解決這個目的?
YARN將資源管理層和資料處理元件層分開。
在 MapR1 中,所有資源管理和處理的任務都是由 JobTracker 完成的,但是隨著 Hadoop 2.x 的釋出,兩個層都被劃分了,對於資源管理層,我們有了YARN。現在 Hadoop 2.x 說,資料處理使用 MapR、Spark、Tez 和其他可用的資料處理框架,而 YARN 負責資源協商。
Hadoop 2.x 將 MapR 元件解耦為不同的元件,最終增加了整個生態系統的能力,從而實現了更高的可用性和更高的可擴充套件性。
YARN 及其元件
YARN包含兩個元件:資源管理器和節點管理器。
資源管理器
Spark 工作在主從架構上,資源管理器存在於主節點上。RM 是主要權威,有助於管理不同作業的資源,例如 RAM、CPU 使用率、網路頻寬等。資源管理器維護正在執行的應用程式列表和可用資源列表。
資源管理器有兩個元件:排程程式和應用程式管理器。
- 排程器:
排程器代表資源管理器處理資源分配部分。它根據資源的可用性將資源分配給各種 MapR 或 Spark 應用程式。
排程程式純粹負責資源分配,不涉及任何其他活動,如監控或跟蹤作業狀態等。
- 應用管理者:
Application Manager在從節點中啟動特定於應用程式的Application Master。
注意:Application Manager和Application master是不同的元件。
簡而言之,當資源管理器接受新的 MapR 或 Spark 應用程式提交時,排程程式所做的初始決定之一是選擇一個容器來為該特定應用程式啟動 Application Master,應用程式管理器負責啟動相同的應用程式。
節點管理器
在 Hadoop 2.x 之前,使用固定數量的槽來執行 Map 和 Reduce 作業,但在 Hadoop 2.x 之後槽的概念被資源容器的動態建立/分配所取代。
一個容器是指資源,例如CPU,RAM,磁碟或硬碟,以及網路IO,類似於一個伺服器的集合。
一個節點管理器負責保持容器中的每臺機器的框架代理,監測他們的資源使用(CPU,記憶體,磁碟等),並將其報告回撥度出現在資源管理器。節點管理器存在於從屬系統上。
節點管理器按計劃執行資源的健康檢查,如果任何健康檢查失敗,節點管理器會將該節點標記為不健康並將其報告回資源管理器。
資源管理器 + 節點管理器 = 計算框架
Application master
Application master 是特定於應用程式或每個應用程式的,由應用程式管理器啟動。
Application Master 從資源管理器協商資源,並與節點管理器一起執行和監控任務。Application Master 負責應用程式的整個生命週期。
Application Master 向資源管理器傳送資源請求,並要求容器執行應用程式任務。在收到來自應用程式主機的請求後,資源管理器會驗證資源需求並檢查資源的可用性,並授予一個容器來滿足資源請求。
容器被授予後,應用程式主將請求節點管理器利用資源並啟動特定於應用程式的任務。
Application Master 監視應用程式及其任務的進度。如果發生故障,它會請求一個新容器來啟動任務並報告故障。
應用程式執行完成後,Application Master 自行關閉並釋放其容器。因此標誌著執行完成。
相關文章
- Hadoop-Yarn架構HadoopYarn架構
- Hadoop學習(二)——MapReduce\Yarn架構HadoopYarn架構
- Hadoop YarnHadoopYarn
- Hadoop框架:Yarn基本結構和執行原理Hadoop框架Yarn
- hadoop_MapReduce yarnHadoopYarn
- HADOOP-YARN-JDKHadoopYarnJDK
- Hadoop的架構模型Hadoop架構模型
- Hadoop面試題(四)——YARNHadoop面試題Yarn
- Hadoop Yarn Capacity SchedulerHadoopYarn
- Hadoop技術內幕:深入解析YARN架構設計與實現原理 附下載地址HadoopYarn架構
- Hadoop架構已凋謝?!Hadoop架構
- Hadoop(一)Hadoop核心架構與安裝Hadoop架構
- Hadoop Yarn框架原理解析HadoopYarn框架
- Hadoop學習筆記—YarnHadoop筆記Yarn
- Hadoop Yarn框架詳細解析HadoopYarn框架
- Apache Hadoop Yarn 學習(二)ApacheHadoopYarn
- hadoop之yarn(優化篇)HadoopYarn優化
- 我的架構夢:(五十九) Apache Hadoop 架構與原理架構ApacheHadoop
- Hadoop的HDFS架構入門Hadoop架構
- MapReduce V2---Yarn的架構及其執行原理Yarn架構
- Hadoop學習之YARN及MapReduceHadoopYarn
- Hadoop 新 MapReduce 框架 Yarn 詳解Hadoop框架Yarn
- 領英開源TonY:構建在Hadoop YARN上的TensorFlow框架HadoopYarn框架
- Kappa架構取代Hadoop的Lambda架構成為主流 - WaehnerAPP架構Hadoop
- 如何掌握Spark和Hadoop的架構SparkHadoop架構
- Hadoop核心之HDFS 架構設計Hadoop架構
- Hadoop 入門筆記—核心元件 YARNHadoop筆記元件Yarn
- 【深入淺出 Yarn 架構與實現】5-3 Yarn 排程器資源搶佔模型Yarn架構模型
- 深入理解Yarn的架構及作業排程機制Yarn架構
- HDFS架構指南(分散式系統Hadoop的檔案系統架構)架構分散式Hadoop
- hadoop實戰2-更改指定hostname啟動hadoop,jps介紹,yarn部署,yarn上執行程式HadoopYarn行程
- Q:Spark和Hadoop的架構區別SparkHadoop架構
- hadoop 原始碼分析HDFS架構演進Hadoop原始碼架構
- Hadoop之MapReduce2架構設計Hadoop架構
- Hadoop架構的初略總結(1)Hadoop架構
- Hadoop架構的初略總結(2)Hadoop架構
- yarn的安裝,並使用yarn安裝vue腳手架YarnVue
- Hadoop偽分散式安裝(MapReduce+Yarn)Hadoop分散式Yarn