生活随笔
收集整理的這篇文章主要介紹了
HDFS相关概念
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
博客內(nèi)容來自《Hadoop權(quán)威指南:大數(shù)據(jù)的存儲(chǔ)與分析》第4版,記錄一下幫助自己理一下思路
一、數(shù)據(jù)塊
hdfs的塊(block)比磁盤的數(shù)據(jù)塊大很多,磁盤數(shù)據(jù)塊一般為512字節(jié),而hdfs的塊默認(rèn)大小為128M。hdfs上的文件被分為多個(gè)分塊作為獨(dú)立的存儲(chǔ)單元,如果一個(gè)文件大小小于hdfs一個(gè)分塊的大小,這個(gè)文件并不會(huì)占取整個(gè)塊的空間。hdfs中塊這么大的原因:hdfs中將塊設(shè)置得很大,其目的是為了最小化尋址開銷,如果塊足夠大,從磁盤傳輸數(shù)據(jù)的時(shí)間會(huì)明顯大于定位這個(gè)塊開始位置的時(shí)間。這樣的話,chuan傳輸一個(gè)由多個(gè)塊組成的大文件的時(shí)間就會(huì)取決于磁盤的傳輸速率對(duì)hdfs中的塊進(jìn)行抽象的好處 - 一個(gè)文件的大小可以大于網(wǎng)絡(luò)中任意一個(gè)磁盤的容量,文件中所有的塊并不需要存儲(chǔ)在同一個(gè)磁盤上,因此他們可以利用集群上任意一個(gè)磁盤存儲(chǔ)。
- 使用抽象塊作為存儲(chǔ)單元而非整個(gè)文件,大大簡(jiǎn)化了存儲(chǔ)子系統(tǒng)的設(shè)計(jì)。將存儲(chǔ)子系統(tǒng)的管理對(duì)象設(shè)置為塊,可以簡(jiǎn)化存儲(chǔ)管理,因?yàn)閴K的大小是固定的,所以計(jì)算單個(gè)磁盤能存儲(chǔ)多少塊就比較容易;同時(shí)也消除了對(duì)元數(shù)據(jù)的顧慮,因?yàn)閴K只存儲(chǔ)大塊的數(shù)據(jù),而元數(shù)據(jù)并不需要與塊一起存儲(chǔ),其他系統(tǒng)可以單獨(dú)管理元數(shù)據(jù)。
- 塊非常適合用于數(shù)據(jù)備份,提供數(shù)據(jù)容錯(cuò)能力和提高可用性。每個(gè)塊會(huì)復(fù)制到幾個(gè)相互獨(dú)立的機(jī)器中,默認(rèn)為3個(gè),這樣就可以確保在塊、磁盤或機(jī)器發(fā)生故障后數(shù)據(jù)不會(huì)丟失。
二、namenode和datanode
hdfs有兩類節(jié)點(diǎn),以管理節(jié)點(diǎn)--工作節(jié)點(diǎn)模式運(yùn)行,即一個(gè)namenode和多個(gè)datanode
namenode:namenode 是管理節(jié)點(diǎn),管理系統(tǒng)的命名空間,維護(hù)文件系統(tǒng)數(shù)和樹內(nèi)所有的文件和目錄;namenode 也記錄每個(gè)文件中各個(gè)塊所在的數(shù)據(jù)節(jié)點(diǎn)信息,但是不會(huì)永久保存塊的位置信息,這些信息會(huì)在客戶端啟動(dòng)時(shí)根據(jù)數(shù)據(jù)節(jié)點(diǎn)信息重建。datanode:文件系統(tǒng)中的工作節(jié)點(diǎn),受客戶端或namenode的調(diào)度,根據(jù)需要存儲(chǔ)并檢索數(shù)據(jù)塊,并且定期向namenode發(fā)送他們所存儲(chǔ)的塊的列表。namenode容錯(cuò)機(jī)制:如果運(yùn)行namenode服務(wù)的機(jī)器損壞,文件系統(tǒng)上的所有文件都會(huì)丟失,因?yàn)椴⒉恢廊绾胃鶕?jù)namenode的塊重建文件,hadoop為namenode提供了兩種容錯(cuò)機(jī)制備份哪些組成組成文件系統(tǒng)元數(shù)據(jù)持久狀態(tài)的文件。也就是hadoop通過配置使namenode在多個(gè)文件系統(tǒng)上保存元數(shù)據(jù)的持久狀態(tài),這種寫操作是實(shí)時(shí)同步的,而且是原子操作。運(yùn)行一個(gè)輔助nemanode,但是不能被用作namenode,它的重要作用是定期合并編輯日志與命名空間鏡像,防止編輯日志過大。它會(huì)保存合并后的命名空間鏡像的副本,在namenode發(fā)生故障時(shí)啟用。?三、塊緩存
通常datanode從磁盤中讀取數(shù)據(jù),但是對(duì)于訪問頻繁的數(shù)據(jù),其對(duì)應(yīng)的塊可能被顯式地緩存在datanode的內(nèi)存中,以堆外緩存的形式存在。作業(yè)調(diào)度器通過在緩存塊的datanode上執(zhí)行任務(wù),可以利用塊緩存的有時(shí)提高讀操作的性能。
轉(zhuǎn)載于:https://www.cnblogs.com/frankxx/p/9280686.html
總結(jié)
以上是生活随笔為你收集整理的HDFS相关概念的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。