Hadoop中分布式文件系統(tǒng)HDFS的設計思想和功能深入剖析
本節(jié)和大家學習一下Hadoop的分布式文件系統(tǒng)HDFS,主要包括HDFS的設計思想,還有HDFS的一些相關功能介紹,希望通過本節(jié)的介紹大家對HDFS有一定的認識。
Hadoop的分布式文件系統(tǒng)HDFS的設計思想:
構建一個非常龐大的分布式文件系統(tǒng)。在集群中節(jié)點失效是正常的,節(jié)點的數(shù)量在Hadoop中不是固定的.單一的文件命名空間,保證數(shù)據(jù)的一致性,寫入一次多次讀取.典型的64MB的數(shù)據(jù)塊大小,每一個數(shù)據(jù)塊在多個DN(DataNode)有復制.客戶端通過NN(NameNode)得到數(shù)據(jù)塊的位置,直接訪問DN獲取數(shù)據(jù)。
NameNode功能:
Hadoop的分布式文件系統(tǒng)HDFS中的NameNode功能。映射一個文件到一批的塊,映射數(shù)據(jù)塊到DN節(jié)點上。集群配置管理,數(shù)據(jù)塊的管理和復制。處理事務日志:記錄文件生成,刪除等。因為NameNode的全部的元數(shù)據(jù)在內存中存儲,所以NN的內存大小決定整個集群的存儲量。NN內存中保存的數(shù)據(jù):
文件列表
每一個文件的塊列表
每一個DN中塊的列表
文件屬性:生成時間,復制參數(shù),文件許可(ACL)
File,Derectory,Block在內存中的大?。℉adoopJIRA頁面):
File:122+fileName.length
Directory:152+fileName.length
Block:112+24*replication
備注:上面數(shù)據(jù)和jira中不一樣是因為在0.16以上的版本在INode中添加了一個8字節(jié)的數(shù)據(jù)類型為long的permission數(shù)據(jù)。
NN的復制線程負責根據(jù)文件復制數(shù)量選擇DN,磁盤的使用負載平衡,DN復制時的IPC通信負載平衡。
SecondaryNamenode的功能:
SecondaryNamenode是一個讓人混淆的名字,其實SecondaryNamenode是一個輔助NN處理FsImage和事務日志的Server,它從NN拷貝FsImage和事務日志到臨時目錄,合并FsImage和事務日志生成一個新的FsImage,上傳新的FsImage到NN上,NN更新FsImage并清理原來的事務日志。
DataNode功能:
在本地文件系統(tǒng)存儲數(shù)據(jù)塊,存儲數(shù)據(jù)塊的元數(shù)據(jù),用于CRC校驗。響應客戶端對數(shù)據(jù)塊和元數(shù)據(jù)的請求。周期性的向NN報告這個DN存儲的所有數(shù)據(jù)塊信息??蛻舳艘鎯?shù)據(jù)時從NN獲取存儲數(shù)據(jù)塊的DN位置列表,客戶端發(fā)送數(shù)據(jù)塊到第一個DN上,第一個DN收到數(shù)據(jù)通過管道流的方式把數(shù)據(jù)塊發(fā)送到另外的DN上。當數(shù)據(jù)塊被所有的節(jié)點寫入后,客戶端繼續(xù)發(fā)送下一個數(shù)據(jù)塊。DN每3秒鐘發(fā)送一個心跳到NN,如果NN沒有受到心跳在重新嘗試后宣告這個DN失效。當NN察覺到DN節(jié)點失效了,選擇一個新的節(jié)點復制丟失的數(shù)據(jù)塊。我們再來看一下Hadoop的分布式文件系統(tǒng)HDFS中數(shù)據(jù)塊的問題。
數(shù)據(jù)塊的放置位置和數(shù)據(jù)正確性:
在典型的配置里,數(shù)據(jù)塊一個放在當前的節(jié)點,一個放在遠程的機架上的一個節(jié)點,一個放在相同機架上的一個節(jié)點,多于3個的數(shù)據(jù)塊隨意選擇放置。客戶端選擇最近的一個節(jié)點讀取數(shù)據(jù)。Hadoop使用CRC32效驗數(shù)據(jù)的正確性,客戶端每512個byte計算一次效驗,DN負責存儲效驗數(shù)據(jù)。客戶端從DN獲取數(shù)據(jù)和效驗數(shù)據(jù),如果效驗出錯,客戶端嘗試另外節(jié)點上復制的數(shù)據(jù)。
Tips:
單點的NN,現(xiàn)在Hadoop沒有HA的解決方案。在我的概念中Hadoop加上Zookeeper是一個HA的解決方案。事務日志可以存儲在NM的多個目錄中。比如:一個本地文件系統(tǒng),一個遠程文件系統(tǒng)(NFS)。Hadoop沒有快照功能,可以考慮使用LVM或ZFS做系統(tǒng)快照。本節(jié)關于Hadoop的分布式文件系統(tǒng)HDFS介紹完畢。
【編輯推薦】
- Hadoop簡介:HDFS和MapReduce的實現(xiàn)
- Hadoop 學習總結 :HDFS概念及其用法
- 輕松實現(xiàn)Hadoop Hdfs配置
- Hadoop集群搭建過程中相關環(huán)境配置詳解
- Hadoop完全分布模式安裝實現(xiàn)詳解