HDFS

HDFS:Hadoop分布式文件系統(tǒng)。

文件系統(tǒng)的塊(Block):是磁盤塊的整數(shù)倍,HDFS默認(rèn)塊的大小為64MB(降低尋址開銷),即每次讀寫的數(shù)據(jù)量最小都必須是塊。塊也不宜過大,因?yàn)镸apReduce的Map一次只處理一個(gè)塊中的數(shù)據(jù)。(普通操作系統(tǒng)中,文件系統(tǒng)一般會(huì)把磁盤空間劃分成每512字節(jié)為一組的“磁盤塊”,是文件系統(tǒng)讀寫操作的最小單位)。

主節(jié)點(diǎn)/名稱節(jié)點(diǎn),從節(jié)點(diǎn)/數(shù)據(jù)節(jié)點(diǎn):名稱節(jié)點(diǎn)負(fù)責(zé)文件和目錄的創(chuàng)建刪除等,同時(shí)管理數(shù)據(jù)節(jié)點(diǎn)和數(shù)據(jù)塊的映射關(guān)系。所以客戶端只有訪問名稱節(jié)點(diǎn)才能得到文件塊的映射,找對(duì)數(shù)據(jù)節(jié)點(diǎn)上塊的位置,繼而讀取;在寫入時(shí)也是由名稱節(jié)點(diǎn)負(fù)責(zé)分配存儲(chǔ)的位置,客戶端才能寫入到指定的位置。名稱節(jié)點(diǎn)不參與數(shù)據(jù)的傳輸。

名稱節(jié)點(diǎn):①FsImage:用于維護(hù)文件系統(tǒng)樹及樹中的所有文件和文件夾的元數(shù)據(jù)。②EditLog:文件的增刪改等操作都會(huì)被記錄。當(dāng)名稱節(jié)點(diǎn)啟動(dòng)時(shí)會(huì)先加載FsImage到內(nèi)存,然后執(zhí)行EditLog中的所有操作,使內(nèi)存中的元數(shù)據(jù)最新,而后得到一個(gè)新的FsImage和一個(gè)空的EditLog。(名稱節(jié)點(diǎn)在剛啟動(dòng)時(shí)會(huì)處于“安全模式”,只提供讀。)

數(shù)據(jù)節(jié)點(diǎn):定時(shí)向名稱節(jié)點(diǎn)發(fā)送自己所存儲(chǔ)塊的列表。

第二名稱節(jié)點(diǎn):作用:①輔助名稱節(jié)點(diǎn)合并FsImage和EditLog。如果EditLog一直在記錄,變得很大,在后來的重啟中可能會(huì)處于較長(zhǎng)的“安全模式”,所以第二名稱節(jié)點(diǎn)會(huì)隔一段時(shí)間同步名稱節(jié)點(diǎn)的F和E,假設(shè)時(shí)間為t1,之后會(huì)暫時(shí)出現(xiàn)一個(gè)新的E.new,然后第二名稱節(jié)點(diǎn)合并F和E,合并過程和名稱節(jié)點(diǎn)的一樣,再然后把F同步到名稱節(jié)點(diǎn),恢復(fù)E.new為E。從而減小了E。②作為名稱節(jié)點(diǎn)的“檢查點(diǎn)”。當(dāng)名稱節(jié)點(diǎn)故障,第二名稱節(jié)點(diǎn)上是有t1時(shí)間同步過來的F的,可用來恢復(fù)系統(tǒng)。不能作為“熱備份”,因?yàn)閠1時(shí)間之后故障的話會(huì)丟失部分E的操作,所以只能恢復(fù)到t1時(shí)刻。

無法高效存儲(chǔ)小文件,小文件指大小超過一個(gè)塊的文件。因?yàn)槊Q節(jié)點(diǎn)負(fù)責(zé)管理文件系統(tǒng)的元數(shù)據(jù),元數(shù)據(jù)保存在內(nèi)存中,因此大量的元數(shù)據(jù)信息很容易降低數(shù)據(jù)索引的效率,并且在MapReduce中處理大量小文件會(huì)產(chǎn)生過多的Map任務(wù),線程開銷增大。

通信協(xié)議:①客戶端(主動(dòng)TCP)名稱節(jié)點(diǎn)。②名稱節(jié)點(diǎn)(數(shù)據(jù)節(jié)點(diǎn)協(xié)議)數(shù)據(jù)節(jié)點(diǎn)。③客戶端(RPC)數(shù)據(jù)節(jié)點(diǎn)。

數(shù)據(jù)復(fù)制:比如客戶端把數(shù)據(jù)寫入HDFS的操作,①對(duì)文件進(jìn)行切塊。②每一個(gè)塊分別請(qǐng)求名稱節(jié)點(diǎn),名稱節(jié)點(diǎn)會(huì)給出數(shù)據(jù)列表。③客戶端把數(shù)據(jù)寫入到數(shù)據(jù)列表中的第一個(gè)數(shù)據(jù)節(jié)點(diǎn)。④第一個(gè)數(shù)據(jù)節(jié)點(diǎn)會(huì)把寫入的數(shù)據(jù)和數(shù)據(jù)列表傳遞給第二個(gè)數(shù)據(jù)節(jié)點(diǎn)。⑤第二個(gè)數(shù)據(jù)節(jié)點(diǎn)寫入并傳遞。。。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容