新聞中心
經(jīng)驗總結(jié):Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計要點匯總
作者:zyp731 2010-06-07 11:00:53
開發(fā)
架構(gòu)
分布式
Hadoop Hadoop分布式文件系統(tǒng)是不被大多數(shù)人知道的東西,這里就向大家介紹一下Hadoop分布式文件系統(tǒng)架構(gòu)和設(shè)計的要點,歡迎大家一起來學習。

10余年的鑲黃網(wǎng)站建設(shè)經(jīng)驗,針對設(shè)計、前端、開發(fā)、售后、文案、推廣等六對一服務(wù),響應快,48小時及時工作處理。營銷型網(wǎng)站的優(yōu)勢是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動調(diào)整鑲黃建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計,從而大程度地提升瀏覽體驗。成都創(chuàng)新互聯(lián)從事“鑲黃網(wǎng)站設(shè)計”,“鑲黃網(wǎng)站推廣”以來,每個客戶項目都認真落實執(zhí)行。
本節(jié)繼續(xù)向大家介紹一下Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計的要點,本節(jié)主要包括四個部分,相信通過本節(jié)的介紹你對Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計的要點應該有深刻的認識。下面是具體介紹。
一、健壯性
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)建該文件新的副本,并分布到集群中以滿足應用的要求。這些均衡計劃目前還沒有實現(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ù)跟相應的校驗和文件中的校驗和是否匹配,如果不匹配,客戶端可以選擇從其他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所在的機器錯誤,手工的干預是必須的。目前,在另一臺機器上重啟因故障而停止服務(wù)的Namenode這個功能還沒實現(xiàn)。
5、快照
快照支持某個時間的數(shù)據(jù)拷貝,當HDFS數(shù)據(jù)損壞的時候,可以恢復到過去一個已知正確的時間點。HDFS目前還不支持快照功能。
二、數(shù)據(jù)組織
1、數(shù)據(jù)塊
兼容Hadoop分布式文件系統(tǒng)(HDFS)的應用都是處理大數(shù)據(jù)集合的。這些應用都是寫數(shù)據(jù)一次,讀卻是一次到多次,并且讀的速度要滿足流式讀。HDFS支持文件的write-once-read-many語義。一個典型的block大小是64MB,因而,文件總是按照64M切分成chunk,每個chunk存儲于不同的Datanode
2、步驟
某個客戶端創(chuàng)建文件的請求其實并沒有立即發(fā)給Namenode,事實上,HDFS客戶端會將文件數(shù)據(jù)緩存到本地的一個臨時文件。應用的寫被透明地重定向到這個臨時文件。當這個臨時文件累積的數(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上運行的目標應用認真考慮的結(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)給應用提供了多種訪問方式,可以通過DFSShell通過命令行與HDFS數(shù)據(jù)進行交互,可以通過javaAPI調(diào)用,也可以通過C語言的封裝API訪問,并且提供了瀏覽器訪問的方式。正在開發(fā)通過webDav協(xié)議訪問的方式。具體使用參考文檔。
四、空間的回收
1、文件的刪除和恢復
用戶或者應用刪除某個文件,這個文件并沒有立刻從HDFS中刪除。相反,HDFS將這個文件重命名,并轉(zhuǎn)移到/trash目錄。當文件還在/trash目錄時,該文件可以被迅速地恢復。文件在/trash中保存的時間是可配置的,當超過這個時間,Namenode就會將該文件從namespace中刪除。文件的刪除,也將釋放關(guān)聯(lián)該文件的數(shù)據(jù)塊。注意到,在文件被用戶刪除和HDFS空閑空間的增加之間會有一個等待時間延遲。
當被刪除的文件還保留在/trash目錄中的時候,如果用戶想恢復這個文件,可以檢索瀏覽/trash目錄并檢索該文件。/trash目錄僅僅保存被刪除文件的最近一次拷貝。/trash目錄與其他文件目錄沒有什么不同,除了一點:HDFS在該目錄上應用了一個特殊的策略來自動刪除文件,目前的默認策略是刪除保留超過6小時的文件,這個策略以后會定義成可配置的接口。
2、Replication因子的減小
當某個文件的replication因子減小,Namenode會選擇要刪除的過剩的副本。下次心跳檢測就將該信息傳遞給Datanode,Datanode就會移除相應的block并釋放空間,同樣,在調(diào)用setReplication方法和集群中的空閑空間增加之間會有一個時間延遲。本節(jié)關(guān)于Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計的要點介紹到這里。
網(wǎng)站標題:經(jīng)驗總結(jié):Hadoop分布式文件系統(tǒng)中架構(gòu)和設(shè)計要點匯總
URL分享:http://m.fisionsoft.com.cn/article/cocijsp.html


咨詢
建站咨詢
