三、hadoop 2.x
一、YARN
YARN系統由以下幾個組成部分:
容器(container)
容器(container)是YARN中的計算單元,一部分cpu核心和一部分記憶體構成一個容器。相當於MapReduceV1的一個任務(task)執行器。
任何任務或者程式(單個任務或者多個任務組成的有向無環圖)都執行在一個或者多個容器中。
叢集節點與容器之間的關係:一個節點可以執行多個容器,但一個容器只能執行在一個節點上。在YARN框架中全權負責分配容器的元件叫做節點管理器。
節點管理器(Node Manager)
節點管理器(Node Manager)執行在叢集中的一個節點上,叢集中每個節點都執行著自己的節點管理器。
節點管理器作為一個從屬服務,它接受資源管理器的請求,然後分配容器給應用程式。它還負責監控和彙報資源使用情況給資源管理器。
在Hadoop叢集中,節點管理器和資源管理器一起協同工作,負責管理分配Hadoop系統資源。資源管理器是一個Hadoop叢集的全域性元件,節點管理器作為各個節點的代理來負責管理叢集中每個節點的健康情況,管理每個已啟動容器的整個生命週期。這種職責分離使得資源管理器相比傳統的作業排程器(JobScheduler)具備更好的系統擴充套件性。
另外,節點管理器還執行各種YARN應用程式使用的輔助程式(auxiliary service)。比如,在hadoop 2.0實現中,MapReduce程式中Shuffle服務就是一個輔助服務。
全域性資源管理器(Global Resource Manager)
資源管理器,在上文已經介紹,它和節點管理器一起協同工作,負責管理分配Hadoop系統資源。
資源管理器的核心是一個排程器:當多個應用程式競爭使用叢集資源的時候,它來負責資源的分配排程,確保資源的優化合理使用。
排程器按照程式佇列和叢集的處理能力,負責為正在執行的多個應用程式分配其所需的叢集資源。Hadoop自帶計算能力排程器和公平排程器。
應用程式管理器(Application Master)
應用程式管理器是YARN與老的MapReduceV1框架之間的關鍵區別。
應用程式管理器是一個特定的框架函式庫(framework-specific library)例項,它同資源管理器協調溝通資源,並通過節點管理器來獲取這些系統資源,然後執行任務。
這樣設計的應用程式管理器可以提高可擴充套件性和框架通用性,使用不同的應用程式管理器來管理基於不同設計思想的計算框架,使得多種計算框架可以共存於一個統一的管理系統中。
Hadoop系統現在不僅支援MapReduce型別的計算,它變得更加外掛化:如果系統要增加某種型別的計算框架,就開發一種對應的程式管理器,並把這個程式管理器以外掛的形式整合到hadoop系統之中。
二、YARN請求步驟
主要分為兩大步:首先,分配容器,啟動應用程式管理器,為程式作業做準備;然後由應用程式管理器請求容器,執行程式作業。詳細如下:
三、HDFS的高可用性
在Hadoop1.x中,名稱節點會引發系統單點故障。而在Hadoop2.x中,引入了高可用名稱節點概念。核心思想是使用兩個相同的名稱節點:一個處於活動模式,一個處於待機模式。處於活動模式的名稱節點未系統提供服務,處於待機模式的名稱節點需要實時同步活動名稱節點的資料。一旦活動名稱節點當機,系統進行快速的故障切換。
在當前設計中,兩個名稱節點共享同一個儲存裝置。活動名稱節點的任何修改都會記錄到共享儲存中的edits日誌檔案。待機名稱節點將這些修改應用到自己的名稱空間中。一旦活動名稱節點故障,待機名稱節點會確保edits檔案中的所有資料都被應用。
相關文章
- hadoop之 Hadoop 2.x HA 、FederationHadoop
- hadoop編譯—+2.x編譯Hadoop編譯
- hadoop(2.x)以hadoop2.2為例完全分散式最新高可靠安裝文件Hadoop分散式
- hadoop1.x和2.x的一些主要區別Hadoop
- Hadoop第三課Hadoop
- hadoop三大元件Hadoop元件
- hadoop MapReduce 三種連線Hadoop
- Hadoop(三)通過C#/python實現Hadoop MapReduceHadoopC#Python
- hadoop官網翻譯第三天Hadoop Cluster SetupHadoop
- Hadoop面試題總結(三)——MapReduceHadoop面試題
- 大資料時代之hadoop(三):hadoop資料流(生命週期)大資料Hadoop
- hadoop hive hbase 入門學習 (三)HadoopHive
- 在ubuntu中安裝單機Hadoop(三)UbuntuHadoop
- spring boot 2.xSpring Boot
- 08.ElementUI 2.X 原始碼學習:原始碼剖析之工程化(三)UI原始碼
- Hadoop 學習系列(三)之 YARN 詳細解析HadoopYarn
- FreeBSD下安裝配置Hadoop叢集(三)Hadoop
- Hadoop 三劍客之 —— 分散式計算框架 MapReduceHadoop分散式框架
- Apache Hadoop文件翻譯之三(使用者指南)ApacheHadoop
- Hadoop作業的三種排程演算法Hadoop演算法
- springcloudBus 2.x 事件追蹤SpringGCCloud事件
- Hyperledger Fabric 2.x 環境搭建
- Tensorflow 2.x入門教程
- framework7-vue ^2.x pushStateFrameworkVue
- python 2.x 模擬樁Python
- Hadoop 三劍客之 —— 叢集資源管理器 YARNHadoopYarn
- 第三篇:配置Hadoop的Eclipse開發環境HadoopEclipse開發環境
- 參加Strata+Hadoop World大會的三大原因Hadoop
- ibit-mybatis 2.x 介紹MyBatis
- RxJava 2.x入門新姿勢一RxJava
- 詳解 OpenGL ES 2.x 渲染流程
- hadoop之 hadoop用途方向Hadoop
- Hadoop 三劍客之 —— 分散式檔案儲存系統 HDFSHadoop分散式
- Hadoop叢集三種作業排程演算法介紹Hadoop演算法
- Hadoop傻瓜化:Datameer大資料收入即將翻三番Hadoop大資料
- hadoop之 hadoop 機架感知Hadoop
- [hadoop]hadoop學習路線Hadoop
- 用Hadoop,還是不用Hadoop?Hadoop