HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据
2019獨角獸企業(yè)重金招聘Python工程師標準>>>
我們都知道Hadoop的底層是HDFS-Hadoop Distributed File System.也就是Hadoop分布式文件系統(tǒng)。
所有的運算都是基于HDFS文件的,它的核心關(guān)鍵詞有:主從NameNode VS DataNode.
-----------其中NameNode上存儲的就是元數(shù)據(jù)---描述數(shù)據(jù)文件的meta信息。
存在形式有:內(nèi)存信息+硬盤文件信息。
這段時間,就讓我們一起來了解HDFS的元數(shù)據(jù)以及HDFS文件系統(tǒng)的要義吧。
-------------------------------------------------------------------------------------------------
試想,如果讓我們自己設(shè)計一個文件系統(tǒng),我們需要元數(shù)據(jù)存儲哪些信息?
其實這取決于信息得到哪些功能?
個人認為功能包括:
1)namenode和所有datanode的IP,端口,文件夾,容量等信息。這相當于一個總體的文件系統(tǒng)框架描述。
2)每個datanode的文件的層次描述,文件目錄關(guān)系。這個比1就更細致了。
3)對于某個文件,知道拆分了幾塊,每塊的大小,備份情況,分別分布在哪些datanode上的哪些路徑上。
從1我們可以得到分布式文件系統(tǒng)框架的骨架,從2我們可以得到分布式文件系統(tǒng)的血肉,從3我們可以得到具體的訪問一個文件的方式。
有了以上3個,實際上就是namenode的元數(shù)據(jù)信息的組成部分,一切從應(yīng)用的需求出發(fā)才可以得到設(shè)計圖。
-------------------------------------------------------------------------------------------------
啟動時,元數(shù)據(jù)從硬盤里被FSImage讀取到內(nèi)存中。
在持久化時,元數(shù)據(jù)被FSImage持久化到硬盤中。
同時硬盤中也會存放操作日志edits.我目前的理解是:把操作日志的行為累加起來---》最終的元數(shù)據(jù)。
這個也就像是redis里干的一樣了。很多數(shù)據(jù)庫也是這么操作的,這個沒啥好說的,很簡答!
-------------------------------------------------------------------------------------------------
HDFS也引入了INode,這實際上跟linux中的文件系統(tǒng)中的INode是一樣的,其次就是由于是分布式文件系統(tǒng)
所以每個文件的分片在hdfs中就成了Block。塊。
這里必須要強調(diào):塊是按照物理大小分的,而不是分局邏輯大小,這樣會引入什么問題?
就是一個邏輯記錄可能會分到2個塊中,而這2個塊可能還是跨機器的。
這些hadoop都會解決。以后再討論。
-------------------------------------------------------------------------------------------------
理論講得再多,也不及代碼來得實在而痛快。
下面就講一講HDFS的format究竟做了哪些事情!
?
?
轉(zhuǎn)載于:https://my.oschina.net/qiangzigege/blog/345055
總結(jié)
以上是生活随笔為你收集整理的HDFS【2.5.1】系列1:HDFS的核心数据结构---元数据的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何让 zend studio 10 识
- 下一篇: ASP.NET真假分页—真分页