大數(shù)據(jù)交流群QQ:494721467
創(chuàng)新互聯(lián)總部坐落于成都市區(qū),致力網(wǎng)站建設(shè)服務(wù)有網(wǎng)站設(shè)計(jì)制作、做網(wǎng)站、網(wǎng)絡(luò)營(yíng)銷策劃、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站維護(hù)、公眾號(hào)搭建、小程序定制開發(fā)、軟件開發(fā)等為企業(yè)提供一整套的信息化建設(shè)解決方案。創(chuàng)造真正意義上的網(wǎng)站建設(shè),為互聯(lián)網(wǎng)品牌在互動(dòng)行銷領(lǐng)域創(chuàng)造價(jià)值而不懈努力!HDFS容錯(cuò):
如何使文件體統(tǒng)能夠容忍節(jié)點(diǎn)故障,并且不丟失任何的數(shù)據(jù)也就是HDFS的容錯(cuò)機(jī)制
1、心跳機(jī)制:
namenode 和datanode是維護(hù)心跳的檢測(cè)??赡芫W(wǎng)絡(luò)故障,導(dǎo)致namenode接收不到datanode的心跳包,namenode就不會(huì)將任何新的I/O操作派發(fā)給那個(gè)
Datanode,所以datanode上的數(shù)據(jù)是無(wú)效的。namenode會(huì)檢測(cè)到文件塊的副本數(shù)目小于設(shè)置值,如果小于就自動(dòng)開始復(fù)制新的副本并分發(fā)到其他的datanode
節(jié)點(diǎn)上。
2、檢查文件的塊的完整性
HDFS會(huì)檢索到文件或者某個(gè)節(jié)點(diǎn)塊的大小是否一致,不一致,會(huì)從其他的Datanode節(jié)點(diǎn)上獲取該快的副本
3、集群的負(fù)載均衡
節(jié)點(diǎn)的丟失或者增加會(huì)使數(shù)據(jù)分布不均,當(dāng)某個(gè)Datanode節(jié)點(diǎn)的空閑空間大于一個(gè)臨界點(diǎn)值時(shí),HDFS會(huì)自動(dòng)從其他節(jié)點(diǎn)把數(shù)據(jù)遷移過來
4、namenode上的FSlmage 和Edit log文件
FSlmage 和Edit log文件是HDFS上的核心數(shù)據(jù)結(jié)構(gòu)。當(dāng)他們損壞HDFS將會(huì)失效
5、文件的刪除
刪除一個(gè)文件,并不會(huì)馬上從namenode上移動(dòng),設(shè)置的時(shí)間由hdfs-site.xml問價(jià)的配置,fs.trash.interval決定設(shè)置時(shí)間(時(shí)間單位為秒)
-------------------------------------------------------------------------
HDFS讀取文件和寫入文件
1、hdfs會(huì)將文件的切片成塊的存儲(chǔ)到datanod各個(gè)節(jié)點(diǎn)中,而文件的數(shù)據(jù)塊的布局是由namenode和hdfs-site.xml中配置dfs.replication一起決定的。
dfs.replication表示該文件在hdfs中的副本數(shù),它默認(rèn)為3。
2、hdfs客戶端想要讀取文件,首先要訪問namenode,并告訴它要讀取的文件,在這之前,hdfs會(huì)對(duì)客戶的身份信息進(jìn)行驗(yàn)證:一種是通過信任的客戶端,
由其指定的用戶名,另一種是通過kerberos等強(qiáng)制驗(yàn)證機(jī)制來完成。訪問文件要檢查文件的所有者和訪問權(quán)限。如果文件存在用戶對(duì)它有訪問權(quán)限,
nanmenode會(huì)提供文件的信息及塊的datanode列表。hdfs客戶端就可以訪問最合適的datanode,直到文件hdfs動(dòng)關(guān)閉文件流
寫入文件:
hdfs客戶端通過hdfs相關(guān)的api發(fā)送請(qǐng)求,打開一個(gè)要寫入的文件,這個(gè)請(qǐng)求將會(huì)被namenode接收到,并建立該文件的元數(shù)據(jù),但新建的文件元數(shù)據(jù)和任何
數(shù)據(jù)塊沒有關(guān)聯(lián)??蛻舳耸盏教崾境晒Υ蜷_文件時(shí),就開始往里面寫數(shù)據(jù),當(dāng)客戶端將數(shù)據(jù)寫入流時(shí)。數(shù)據(jù)會(huì)被拆成數(shù)據(jù)包,并將數(shù)據(jù)包保存在內(nèi)存的隊(duì)
列中??蛻舳擞袀€(gè)獨(dú)立線程,它從隊(duì)列中讀取數(shù)據(jù)包,并向namenode請(qǐng)求一組datanode列表,以便寫入下個(gè)數(shù)據(jù)塊的多個(gè)副本。hdfs直接連接到列表,從
而建立了數(shù)據(jù)塊的管道,寫入到磁盤中。
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。