真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

HDFS原理及架構(gòu)

HDFS架構(gòu)

HDFS是一個(gè)master/slave結(jié)構(gòu)的服務(wù),其中NameNode是master,一般只在一臺(tái)節(jié)點(diǎn)上啟動(dòng);DataNode是slave,一般每臺(tái)節(jié)點(diǎn)都會(huì)啟動(dòng)一個(gè);DataNode不斷地主動(dòng)向NameNode發(fā)送心跳、匯報(bào)block信息等;為了對(duì)NameNode進(jìn)行備份,還會(huì)有一個(gè)SecondaryNameNodeHDFS原理及架構(gòu)

成都創(chuàng)新互聯(lián)公司主要從事成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)吳川,十載網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

HDFS各類操作

  1. 創(chuàng)建目錄
    HDFS原理及架構(gòu)
    client與namenode直接交互,在INode中創(chuàng)建目錄節(jié)點(diǎn),并將操作寫入edit log中即可,全程不需要datanode參與。
  2. 刪除文件
    HDFS原理及架構(gòu)
    客戶端與namenode交互刪除文件,namenode只是標(biāo)記要?jiǎng)h除,但不會(huì)主動(dòng)通知datanode;
    當(dāng)對(duì)應(yīng)的datanode向namenode發(fā)送心跳時(shí),namnode會(huì)把刪除指令放到返回值里;
    所以一般刪除不是立即刪除,而是有一定的延遲。
  3. 讀文件
    HDFS原理及架構(gòu)
    client先與namenode交互,通過getBlockLocatitions方法獲取到文件block所在節(jié)點(diǎn),然后client再與datanode交互獲取具體數(shù)據(jù);
    block可能不是一次全部返回,可能需要多次調(diào)用getBlockLocatitions。
    客戶端讀數(shù)據(jù)時(shí)如果DN發(fā)生故障,則會(huì)接著讀取下一個(gè)數(shù)據(jù)塊兒,并記錄這個(gè)出故障的節(jié)點(diǎn);讀數(shù)據(jù)返回中包含了數(shù)據(jù)的校驗(yàn)和,如果發(fā)現(xiàn)錯(cuò)誤,會(huì)報(bào)告給NN,并從其它副本讀取。
  4. 寫文件
    HDFS原理及架構(gòu)
    client先與NN交互,在NN命名空間中創(chuàng)建一個(gè)新文件;
    第二步client真正寫入之前再跟NN交互獲取要在哪兒寫,addBlock返回一個(gè)LocateBlock對(duì)象,包含數(shù)據(jù)庫(kù)標(biāo)志和版本號(hào);
    LocateBlock還提供了跟DN交互的數(shù)據(jù)流管道,client寫入到管道中的數(shù)據(jù)被分為一個(gè)個(gè)的文件包,這些被放入到一個(gè)輸出隊(duì)列中;
    第三步client跟DN交互寫入數(shù)據(jù),第一個(gè)節(jié)點(diǎn)寫完,由第一個(gè)DN向第二個(gè)DN寫,寫完還要返回ack確認(rèn)信息;如果收到ack確認(rèn)信息,則將這個(gè)文件包從隊(duì)列中刪除;
    寫完一個(gè)數(shù)據(jù)塊之后,DN會(huì)跟NN交互,向NN提交這個(gè)數(shù)據(jù)塊。

對(duì)于某個(gè)DN發(fā)生故障的情況:
1,先關(guān)閉數(shù)據(jù)流通道,正在寫的數(shù)據(jù)包由于沒有收到ack,不會(huì)從隊(duì)列中刪除,數(shù)據(jù)不會(huì)丟失;
2,正常的DN上的數(shù)據(jù)塊會(huì)被賦予一個(gè)新的版本號(hào),并通知NN。主要是故障節(jié)點(diǎn)恢復(fù)后,發(fā)現(xiàn)版本號(hào)跟NN上的不一致就會(huì)自動(dòng)刪除了;
3,數(shù)據(jù)流管道刪除錯(cuò)誤節(jié)點(diǎn)并重新建立管道,繼續(xù)在正常幾點(diǎn)上寫數(shù)據(jù);
4,文件關(guān)閉后,NN發(fā)現(xiàn)此數(shù)據(jù)庫(kù)沒有達(dá)到副本數(shù)要求,會(huì)選擇一個(gè)新的DN來復(fù)制數(shù)據(jù)塊。

  1. SecNameNode備份
    hdfs的元數(shù)據(jù)保存在Inode對(duì)象中,但是namenode是一個(gè)單點(diǎn)master,如果數(shù)據(jù)都在內(nèi)存則無法進(jìn)行故障恢復(fù)。
    hdfs有一個(gè)檢查點(diǎn)機(jī)制,會(huì)把某個(gè)時(shí)間點(diǎn)內(nèi)存中的Inode持久化到fsimage文件中,同時(shí)對(duì)每個(gè)操作記錄寫入到edit log中。
    SecNameNode則負(fù)責(zé)把namenode上的fsimage和edit log合并。
    HDFS原理及架構(gòu)
    1,SecNN不斷地獲取NN上editlog的大小,如果太小則不做處理;
    2,如果editlog較大,則SecNN通知NN發(fā)起一次檢查點(diǎn)操作;
    3,NN會(huì)產(chǎn)出一個(gè)新的editlog——edit.new,此后對(duì)元數(shù)據(jù)的操作都寫入到edit.new文件中;
    4,而SecNN則通過http接口分別將NN上的fsimage和editlog拉取到SecNN節(jié)點(diǎn)上,并在內(nèi)存中合并,并產(chǎn)出文件fsimage.ckpt;
    5,SecNN再主動(dòng)通知NN鏡像已合并完成;
    6,NN通過http接口拉取過來fsimage.ckpt并覆蓋原來的fsimage,最后將edit.new改回edit

HDFS HA

https://www.ibm.com/developerworks/cn/opensource/os-cn-hadoop-name-node/index.html


分享題目:HDFS原理及架構(gòu)
URL地址:http://weahome.cn/article/jiodhi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部