HDFS(一)
HDFS(一)
參考:
http://hadoop.apache.org/docs/r1.0.4/cn/hdfs_design.html
https://www.cnblogs.com/zsql/p/11587240.html
Hadoop Distribute File System:Hadoop分布式文件系統(tǒng),Hadoop核心組件之一,作為大數(shù)據(jù)生態(tài)圈最底層的分布式存儲服務而存在。
架構(gòu)
架構(gòu)圖:主從結(jié)構(gòu)
一個HDFS集群是由一個Namenode和一定數(shù)目的Datanodes組成。
- Namenode是一個中心服務器,負責存儲和管理文件系統(tǒng)元數(shù)據(jù)信息(包括namespace目錄結(jié)構(gòu)、文件塊位置信息等)以及客戶端對文件的訪問;
- Datanode負責管理它所在節(jié)點上的存儲;
- SecondaryNameNode是主角色的輔助角色,幫助主角色進行元數(shù)據(jù)的合并;
NameNode
-
維護和管理文件系統(tǒng)元數(shù)據(jù),包括名稱空間目錄樹結(jié)構(gòu)、文件和塊的位置信息、訪問權(quán)限等信息;HDFS的訪問的唯一入口
-
內(nèi)部通過內(nèi)存和磁盤文件兩種方式管理元數(shù)據(jù),其中磁盤文件上的元數(shù)據(jù)文件包括FileSystemimage內(nèi)存元數(shù)據(jù)鏡像文件(快照)和edits log編輯日志;
DataNode
負責具體的數(shù)據(jù)塊存儲,DataNode的數(shù)量決定了HDFS集群的整體數(shù)據(jù)存儲能力,通過與NameNode配合維護著數(shù)據(jù)塊。
Secondary NameNode
充當NameNode的輔助接點,但不能替代NameNode。當NameNode啟動時,NameNode合并FSimage和edits log文件以還原當前文件系統(tǒng)名稱空間,如果edits log過大不利于加載,Secondary NameNode就輔助NameNode從NameNode下載FSimage文件和edits log文件進行合并。
重要特性
- 主從架構(gòu)
- 分塊存儲機制
- 副本機制(冗余存儲)
- namespace: 層次性文件組織結(jié)構(gòu)
- 元數(shù)據(jù)管理:文件自身屬性信息;文件塊位置映射信息;
- 數(shù)據(jù)塊存儲
HDFS寫數(shù)據(jù)流程
Pipeline管道
客戶端將數(shù)據(jù)塊寫入第一個數(shù)據(jù)節(jié)點,第一個數(shù)據(jù)節(jié)點保存數(shù)據(jù)之后再將塊復制到第二個數(shù)據(jù)節(jié)點,后者保存后將其復制到第三個數(shù)據(jù)節(jié)點。
為什么datanode之間采用pipeline線性傳輸,而不是一次給三個datanode拓撲式傳輸?數(shù)據(jù)傳輸采用管道的方式,線性的沿著一個方向傳輸,這樣能夠充分的利用每個機器的帶寬,避免網(wǎng)絡瓶頸和高延遲時的連接,最小化推送所有數(shù)據(jù)的延時。在線性推送模式下,每臺機器所有的出口帶寬都用于以最快的速度傳輸數(shù)據(jù),而不是在多個接受者之間分配帶寬。
ACK應答響應
副本存儲策略
- 第一塊副本:優(yōu)先客戶端本地,否則隨機;
- 第二塊副本:不同于第一塊副本的機架;
- 第三塊副本:與第二塊副本相同機架的不同機器;
寫數(shù)據(jù)流程
HDFS讀數(shù)據(jù)流程
總結(jié)
- 上一篇: 大金新一代 E-MAX 8 系列空调上市
- 下一篇: MapReduce简述