溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計知識點有哪些

發(fā)布時間:2021-12-10 11:41:45 來源:億速云 閱讀:99 作者:iii 欄目:開發(fā)技術(shù)

本篇內(nèi)容介紹了“Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計知識點有哪些”的有關(guān)知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠?qū)W有所成!

一、健壯性
Hadoop分布式文件系統(tǒng)HDFS的主要目標就是實現(xiàn)在失敗情況下的數(shù)據(jù)存儲可靠性。常見的三種失?。篘amenodefailures,Datanodefailures和網(wǎng)絡(luò)分割(networkpartitions)。
1、硬盤數(shù)據(jù)錯誤、心跳檢測和重新復制
每個Datanode節(jié)點都向Namenode周期性地發(fā)送心跳包。網(wǎng)絡(luò)切割可能導致一部分Datanode跟Namenode失去聯(lián)系。Namenode通過心跳包的缺失檢測到這一情況,并將這些Datanode標記為dead,不會將新的IO請求發(fā)給它們。寄存在deadDatanode上的任何數(shù)據(jù)將不再有效。Datanode的死亡可能引起一些block的副本數(shù)目低于指定值,Namenode不斷地跟蹤需要復制的block,在任何需要的情況下啟動復制。在下列情況可能需要重新復制:某個Datanode節(jié)點失效,某個副本遭到損壞,Datanode上的硬盤錯誤,或者文件的replication因子增大。

2、集群均衡
HDFS支持數(shù)據(jù)的均衡計劃,如果某個Datanode節(jié)點上的空閑空間低于特定的臨界點,那么就會啟動一個計劃自動地將數(shù)據(jù)從一個Datanode搬移到空閑的Datanode。當對某個文件的請求突然增加,那么也可能啟動一個計劃創(chuàng)建該文件新的副本,并分布到集群中以滿足應(yīng)用的要求。這些均衡計劃目前還沒有實現(xiàn)。

3、數(shù)據(jù)完整性
從某個Datanode獲取的數(shù)據(jù)塊有可能是損壞的,這個損壞可能是由于Datanode的存儲設(shè)備錯誤、網(wǎng)絡(luò)錯誤或者軟件bug造成的。HDFS客戶端軟件實現(xiàn)了HDFS文件內(nèi)容的校驗和。當某個客戶端創(chuàng)建一個新的Hadoop分布式文件系統(tǒng)HDFS文件,會計算這個文件每個block的校驗和,并作為一個單獨的隱藏文件保存這些校驗和在同一個HDFSnamespace下。當客戶端檢索文件內(nèi)容,它會確認從Datanode獲取的數(shù)據(jù)跟相應(yīng)的校驗和文件中的校驗和是否匹配,如果不匹配,客戶端可以選擇從其他Datanode獲取該block的副本。

4、元數(shù)據(jù)磁盤錯誤
FsImage和Editlog是HDFS的核心數(shù)據(jù)結(jié)構(gòu)。這些文件如果損壞了,整個HDFS實例都將失效。因而,Namenode可以配置成支持維護多個FsImage和Editlog的拷貝。任何對FsImage或者Editlog的修改,都將同步到它們的副本上。這個同步操作可能會降低Namenode每秒能支持處理的namespace事務(wù)。這個代價是可以接受的,因為HDFS是數(shù)據(jù)密集的,而非元數(shù)據(jù)密集。當Namenode重啟的時候,它總是選取最近的一致的FsImage和Editlog使用。
Namenode在HDFS是單點存在,如果Namenode所在的機器錯誤,手工的干預(yù)是必須的。目前,在另一臺機器上重啟因故障而停止服務(wù)的Namenode這個功能還沒實現(xiàn)。

5、快照
快照支持某個時間的數(shù)據(jù)拷貝,當HDFS數(shù)據(jù)損壞的時候,可以恢復到過去一個已知正確的時間點。HDFS目前還不支持快照功能。

二、數(shù)據(jù)組織

1、數(shù)據(jù)塊
兼容Hadoop分布式文件系統(tǒng)(HDFS)的應(yīng)用都是處理大數(shù)據(jù)集合的。這些應(yīng)用都是寫數(shù)據(jù)一次,讀卻是一次到多次,并且讀的速度要滿足流式讀。HDFS支持文件的write-once-read-many語義。一個典型的block大小是64MB,因而,文件總是按照64M切分成chunk,每個chunk存儲于不同的Datanode

2、步驟
某個客戶端創(chuàng)建文件的請求其實并沒有立即發(fā)給Namenode,事實上,HDFS客戶端會將文件數(shù)據(jù)緩存到本地的一個臨時文件。應(yīng)用的寫被透明地重定向到這個臨時文件。當這個臨時文件累積的數(shù)據(jù)超過一個block的大?。J64M),客戶端才會聯(lián)系Namenode。Namenode將文件名插入文件系統(tǒng)的層次結(jié)構(gòu)中,并且分配一個數(shù)據(jù)塊給它,然后返回Datanode的標識符和目標數(shù)據(jù)塊給客戶端??蛻舳藢⒈镜嘏R時文件flush到指定的Datanode上。當文件關(guān)閉時,在臨時文件中剩余的沒有flush的數(shù)據(jù)也會傳輸?shù)街付ǖ腄atanode,然后客戶端告訴Namenode文件已經(jīng)關(guān)閉。此時Namenode才將文件創(chuàng)建操作提交到持久存儲。如果Namenode在文件關(guān)閉前掛了,該文件將丟失。
上述方法是對通過對HDFS上運行的目標應(yīng)用認真考慮的結(jié)果。如果不采用客戶端緩存,由于網(wǎng)絡(luò)速度和網(wǎng)絡(luò)堵塞會對吞估量造成比較大的影響。

3、流水線復制
當某個客戶端向HDFS文件寫數(shù)據(jù)的時候,一開始是寫入本地臨時文件,假設(shè)該文件的replication因子設(shè)置為3,那么客戶端會從Namenode獲取一張Datanode列表來存放副本。然后客戶端開始向***個Datanode傳輸數(shù)據(jù),***個Datanode一小部分一小部分(4kb)地接收數(shù)據(jù),將每個部分寫入本地倉庫,并且同時傳輸該部分到第二個Datanode節(jié)點。第二個Datanode也是這樣,邊收邊傳,一小部分一小部分地收,存儲在本地倉庫,同時傳給第三個Datanode,第三個Datanode就僅僅是接收并存儲了。這就是流水線式的復制。

三、可訪問性
Hadoop分布式文件系統(tǒng)(HDFS)給應(yīng)用提供了多種訪問方式,可以通過DFSShell通過命令行與HDFS數(shù)據(jù)進行交互,可以通過javaAPI調(diào)用,也可以通過C語言的封裝API訪問,并且提供了瀏覽器訪問的方式。正在開發(fā)通過WebDav協(xié)議訪問的方式。具體使用參考文檔。

四、空間的回收

1、文件的刪除和恢復
用戶或者應(yīng)用刪除某個文件,這個文件并沒有立刻從HDFS中刪除。相反,HDFS將這個文件重命名,并轉(zhuǎn)移到/trash目錄。當文件還在/trash目錄時,該文件可以被迅速地恢復。文件在/trash中保存的時間是可配置的,當超過這個時間,Namenode就會將該文件從namespace中刪除。文件的刪除,也將釋放關(guān)聯(lián)該文件的數(shù)據(jù)塊。注意到,在文件被用戶刪除和HDFS空閑空間的增加之間會有一個等待時間延遲。
當被刪除的文件還保留在/trash目錄中的時候,如果用戶想恢復這個文件,可以檢索瀏覽/trash目錄并檢索該文件。/trash目錄僅僅保存被刪除文件的最近一次拷貝。/trash目錄與其他文件目錄沒有什么不同,除了一點:HDFS在該目錄上應(yīng)用了一個特殊的策略來自動刪除文件,目前的默認策略是刪除保留超過6小時的文件,這個策略以后會定義成可配置的接口。

2、Replication因子的減小
當某個文件的replication因子減小,Namenode會選擇要刪除的過剩的副本。下次心跳檢測就將該信息傳遞給Datanode,Datanode就會移除相應(yīng)的block并釋放空間,同樣,在調(diào)用setReplication方法和集群中的空閑空間增加之間會有一個時間延遲。

“Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計知識點有哪些”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實用文章!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI