hadoop2.x的变化
HDFS Federation(HDFS聯邦)
HDFS有兩個主要層:
Namespace 由目錄、文件和塊組成;支持所有命名空間對文件和目錄的操作。
Block Storage Service 由Block Management和Storage組成。
Block Management 提供dataNode集群成員關系,注冊信息和周期性的心跳; 處理塊報告,維護塊位置; 支持塊相關的操作,如創建、刪除、修改等; 管理副本數量、位置,刪除多余副本;
Storag是dataNode提供的。
之前的HDFS架構只允許存在一個namespace。一個Namenode管理這個namespace。HDFS聯邦通過增加多個namenode/namespace來解決這個先前架構的限制。
HDFS聯邦使用多個獨立的NameNode/Namespace。NameNode是聯邦的,意味著他們是獨立的,不會要求相互協作。DataNode是存儲block的。每個DataNode都在集群中的所有NameNode注冊。DataNode發送周期性的心跳和block報告,并且處理NameNode發回的命令。
一個block pool 是塊的集合,這些塊屬于一個單一的namespace。Datanode存儲著集群中所有block pool中的塊。block pool的管理相互之間是獨立的。這意味著一個namespace可以獨立的生成塊ID,不需要與其他namespace協調。一個Namenode失敗不會導致Datanode的失敗,這些Datanode還可以服務其他Namenode。
一個Namespace和他的block pool一起稱作namespace volume。這是一個自包含單元。當一個namenode/namespace刪除后,對應的block pool也會被刪除。當集群升級時,每個namespace volume也會升級。
ClusterID是用來標示集群中所有節點的。當Namenode格式化時,這個id會自動產生。
多namenode/namespace的好處:
? ? ? ? HDFS集群支持存儲的水平擴展,但是namespace不能。對于大集群部署或者大量小文件存儲時,使用多namespace會更好。
? ? ? ? 之前的設計中,文件系統操作效率受制于單個的namenode。現在,多個namenode提高了文件讀寫操作效率。
? ? ? ? 一個namenode在多用戶環境中沒有隔離性。使用多namespace,不同的應用或者用戶可以隔離在不同的namespace中。
聯邦配置是向后兼容的,之前架構下的應用不經修改的就可以工作。
聯邦中有NameServiceID。匹配的namenode、secondary、backup、checkpointer節點,都有相同的NameServiceID.
YARN?
新的架構在hadoop-0.23引入的,把JobTracker兩個主要的功能分為Resource Management(RM,資源管理)和job life-cycle management(作業生命周期管理),每個都是獨立的組件。
新的ResourceManager管理著所有計算機資源對應用的分配工作。每個應用都會對應一個ApplicationMaster(AM)。
一個應用或者是原來的一個普通job,或者是這些job的DAG。
ResourceManager和每個節點上的NodeManager構成了計算層。其中,NodeManager會管理所在節點上的用戶進程。
每個應用對應的ApplicationManager負責執行和監控task。
M有兩個組件:Schuduler和ApplicationManager。
Scheduler負責給各種應用分配資源,不會監控或者跟蹤應用狀態。它也不保證應用失敗或者硬件失敗后重啟任務。當前版本的調度器,只根據內存分配資源給應用。調度器是可插拔的。
每個節點都有一個NodeManager,負責管理本節點資源的使用情況,如cpu、內存、磁盤、網絡等,并把這些信息報告給ResourceManager/Scheduler.
ApplicationManager負責管理資源容器。
轉載于:https://www.cnblogs.com/mlj5288/p/4449766.html
總結
以上是生活随笔為你收集整理的hadoop2.x的变化的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Mysql数据库备份和按条件导出表数据
- 下一篇: MC新手入门(三十)------ 逻辑运