2021年大数据Hadoop(十五):Hadoop的联邦机制 Federation
全網最詳細的Hadoop文章系列,強烈建議收藏加關注!
后面更新文章都會列出歷史文章目錄,幫助大家回顧知識重點。
目錄
本系列歷史文章
前言
Hadoop的聯邦機制 Federation
背景概述
Federation架構設計
HDFS Federation加高可用
本系列歷史文章
2021年大數據Hadoop(三十):Hadoop3.x的介紹
2021年大數據Hadoop(二十九):關于YARN常用參數設置
2021年大數據Hadoop(二十八):YARN的調度器Scheduler
2021年大數據Hadoop(二十七):YARN運行流程
2021年大數據Hadoop(二十六):YARN三大組件介紹
2021年大數據Hadoop(二十五):YARN通俗介紹和基本架構
2021年大數據Hadoop(二十四):MapReduce高階訓練
2021年大數據Hadoop(二十三):MapReduce的運行機制詳解
2021年大數據Hadoop(二十二):MapReduce的自定義分組
2021年大數據Hadoop(二十一):MapReuce的Combineer
2021年大數據Hadoop(二十):MapReduce的排序和序列化
2021年大數據Hadoop(十九):MapReduce分區
2021年大數據Hadoop(十八):MapReduce程序運行模式和深入解析
2021年大數據Hadoop(十七):MapReduce編程規范及示例編寫
2021年大數據Hadoop(十六):MapReduce計算模型介紹
2021年大數據Hadoop(十五):Hadoop的聯邦機制 Federation
2021年大數據Hadoop(十四):HDFS的高可用機制
2021年大數據Hadoop(十三):HDFS意想不到的其他功能
2021年大數據Hadoop(十二):HDFS的API操作
2021年大數據Hadoop(十一):HDFS的元數據輔助管理
2021年大數據Hadoop(十):HDFS的數據讀寫流程
2021年大數據Hadoop(九):HDFS的高級使用命令
2021年大數據Hadoop(八):HDFS的Shell命令行使用
2021年大數據Hadoop(七):HDFS分布式文件系統簡介
2021年大數據Hadoop(六):全網最詳細的Hadoop集群搭建
2021年大數據Hadoop(五):Hadoop架構
2021年大數據Hadoop(四):Hadoop發行版公司
2021年大數據Hadoop(三):Hadoop國內外應用
2021年大數據Hadoop(二):Hadoop發展簡史和特性優點
2021年大數據Hadoop(一):Hadoop介紹
前言
2021大數據領域優質創作博客,帶你從入門到精通,該博客每天更新,逐漸完善大數據各個知識體系的文章,幫助大家更高效學習。
有對大數據感興趣的可以關注微信公眾號:三幫大數據
Hadoop的聯邦機制 Federation
背景概述
單NameNode的架構使得HDFS在集群擴展性和性能上都有潛在的問題,當集群大到一定程度后,NameNode進程使用的內存可能會達到上百G,NameNode成為了性能的瓶頸。因而提出了namenode水平擴展方案-- Federation。
Federation中文意思為聯邦,聯盟,是NameNode的Federation,也就是會有多個NameNode。多個NameNode的情況意味著有多個namespace(命名空間),區別于HA模式下的多NameNode,它們是擁有著同一個namespace。現有的HDFS數據管理架構,如下圖所示:
從上圖中,我們可以很明顯地看出現有的HDFS數據管理,數據存儲2層分層的結構.也就是說,所有關于存儲數據的信息和管理是放在NameNode這邊,而真實數據的存儲則是在各個DataNode下.而這些隸屬于同一個NameNode所管理的數據都是在同一個命名空間下的.
一個namespace對應一個block pool。Block Pool是同一個namespace下的block的集合.當然這是我們最常見的單個namespace的情況,也就是一個NameNode管理集群中所有元數據信息的時候.如果我們遇到了之前提到的NameNode內存使用過高的問題,這時候怎么辦?元數據空間依然還是在不斷增大,一味調高NameNode的jvm大小絕對不是一個持久的辦法.這時候就誕生了HDFS Federation的機制.
Federation架構設計
HDFS Federation是解決namenode內存瓶頸問題的水平橫向擴展方案。
Federation意味著在集群中將會有多個namenode和namespace。這些namenode之間是聯合的,也就是說,他們之間相互獨立且不需要互相協調,各自分工,管理自己的區域。分布式的datanode被用作通用的數據塊存儲存儲設備。每個datanode要向集群中所有的namenode注冊,且周期性地向所有namenode發送心跳和塊報告,并執行來自所有namenode的命令。
Federation一個典型的例子就是上面提到的NameNode內存過高問題,我們完全可以將上面部分大的文件目錄移到另外一個NameNode上做管理.更重要的一點在于,這些NameNode是共享集群中所有的DataNode的,它們還是在同一個集群內的。
這時候在DataNode上就不僅僅存儲一個Block Pool下的數據了,而是多個?。
概括起來:
多個NN共用一個集群里的存儲資源,每個NN都可以單獨對外提供服務。
每個NN都會定義一個存儲池(block pool),有單獨的id,每個DN都為所有存儲池提供存儲。
DN會按照存儲池id向其對應的NN匯報塊信息,同時,DN會向所有NN匯報本地存儲可用資源情況。
HDFS Federation加高可用
HDFS Federation并沒有完全解決單點故障問題。雖然namenode/namespace存在多個,但是從單個namenode/namespace看,仍然存在單點故障:如果某個namenode掛掉了,其管理的相應的文件便不可以訪問。Federation中每個namenode仍然像之前HDFS上實現一樣,配有一個secondary namenode,以便主namenode掛掉一下,用于還原元數據信息。
所以一般集群規模真的很大的時候,會采用HA+Federation的部署方案。也就是每個聯合的namenodes都是ha的。
- 📢博客主頁:https://lansonli.blog.csdn.net
- 📢歡迎點贊 👍 收藏 ?留言 📝 如有錯誤敬請指正!
- 📢本文由 Lansonli 原創,首發于 CSDN博客🙉
- 📢大數據系列文章會每天更新,停下休息的時候不要忘了別人還在奔跑,希望大家抓緊時間學習,全力奔赴更美好的生活?
總結
以上是生活随笔為你收集整理的2021年大数据Hadoop(十五):Hadoop的联邦机制 Federation的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2021年大数据Hadoop(十四):H
- 下一篇: 2021年大数据Hadoop(二十二):