Hadoop-2.X HA模式下的FSImage和EditsLog合并過程

HDFS是一個(gè)分布式文件存儲系統(tǒng),文件分布式存儲在多個(gè)DataNode節(jié)點(diǎn)上披坏。一個(gè)文件存儲在哪些DataNode節(jié)點(diǎn)的哪些位置的元數(shù)據(jù)信息(metadata)由NameNode節(jié)點(diǎn)來處理句灌。隨著存儲文件的增多重慢,NameNode上存儲的信息也會越來越多怪与。那么HDFS是如何及時(shí)更新這些metadata的呢樊破?

在HDFS中主要是通過兩個(gè)組件FSImage和EditsLog來實(shí)現(xiàn)metadata的更新缕探。在某次啟動HDFS時(shí)魂莫,會從FSImage文件中讀取當(dāng)前HDFS文件的metadata,之后對HDFS的操作步驟都會記錄到edit log文件中爹耗。比如下面這個(gè)操作過程:

那么完整的metadata信息就應(yīng)該由FSImage文件和edit log文件組成耙考。fsimage中存儲的信息就相當(dāng)于整個(gè)hdfs在某一時(shí)刻的一個(gè)快照。

FSImage文件和EditsLog文件可以通過ID來互相關(guān)聯(lián)潭兽。在參數(shù)dfs.namenode.name.dir設(shè)置的路徑下倦始,會保存FSImage文件和EditsLog文件,如果是QJM方式HA的話山卦,EditsLog文件保存在參數(shù)dfs.journalnode.edits.dir設(shè)置的路徑下鞋邑。

? ?在上圖中可以看到,edit log文件以edits_開頭账蓉,后面跟一個(gè)txid范圍段枚碗,并且多個(gè)edit?log之間首尾相連,正在使用的edit log名字為edits_inprogress_txid铸本。該路徑下還會保存兩個(gè)fsimage文件肮雨,文件格式為fsimage_txid。上圖中可以看出fsimage文件已經(jīng)加載到了最新的一個(gè)edit log文件箱玷,僅僅只有inprogress狀態(tài)的edit log未被加載怨规。在啟動HDFS時(shí),只需要讀入fsimage_0000000000000008927以及edits_inprogress_0000000000000008928就可以還原出當(dāng)前hdfs的最新狀況锡足。?

但是這里又會出現(xiàn)一個(gè)問題波丰,如果edit log文件越來越多、越來越大時(shí)舶得,當(dāng)重新啟動hdfs時(shí)掰烟,由于需要加載fsimage后再把所有的edit log也加載進(jìn)來,就會出現(xiàn)第一段中出現(xiàn)的問題了。怎么解決媚赖?HDFS會采用checkpoing機(jī)制定期將edit log合并到fsimage中生成新的fsimage。這個(gè)過程就是接下來要講的了珠插。



Checkpoint機(jī)制

fsimage和edit log合并的過程如下圖所示:

其實(shí)這個(gè)合并過程是一個(gè)很耗I/O與CPU的操作惧磺,并且在進(jìn)行合并的過程中肯定也會有其他應(yīng)用繼續(xù)訪問和修改hdfs文件。所以捻撑,這個(gè)過程一般不是在單一的NameNode節(jié)點(diǎn)上進(jìn)行從磨隘。如果HDFS沒有做HA的話,checkpoint由SecondNameNode進(jìn)程(一般SecondNameNode單獨(dú)起在另一臺機(jī)器上)來進(jìn)行顾患。在HA模式下番捂,checkpoint則由StandBy狀態(tài)的NameNode來進(jìn)行。

什么時(shí)候進(jìn)行checkpoint由參數(shù)dfs.namenode.checkpoint.preiod(默認(rèn)值是3600江解,即1小時(shí))和dfs.namenode.checkpoint.txns(默認(rèn)值是1000000)來決定设预。period參數(shù)表示,經(jīng)過1小時(shí)就進(jìn)行一次checkpoint犁河,txns參數(shù)表示鳖枕,hdfs經(jīng)過100萬次操作后就要進(jìn)行checkpoint了。這兩個(gè)參數(shù)任意一個(gè)得到滿足桨螺,都會觸發(fā)checkpoint過程宾符。進(jìn)行checkpoint的節(jié)點(diǎn)每隔dfs.namenode.checkpoint.check.period(默認(rèn)值是60)秒就會去統(tǒng)計(jì)一次hdfs的操作次數(shù)。



HA模式下Checkpointing過程分析

在HA模式下checkpoint過程由StandBy NameNode來進(jìn)行灭翔,以下簡稱為SBNN魏烫,Active NameNode簡稱為ANN。

HA模式下的edit log文件會同時(shí)寫入多個(gè)JournalNodes節(jié)點(diǎn)的dfs.journalnode.edits.dir路徑下肝箱,JournalNodes的個(gè)數(shù)為大于1的奇數(shù)哄褒,類似于Zookeeper的節(jié)點(diǎn)數(shù),當(dāng)有不超過一半的JournalNodes出現(xiàn)故障時(shí)狭园,仍然能保證集群的穩(wěn)定運(yùn)行读处。

SBNN會讀取FSImage文件中的內(nèi)容,并且每隔一段時(shí)間就會把ANN寫入edit log中的記錄讀取出來唱矛,這樣SBNN的NameNode進(jìn)程中一直保持著hdfs文件系統(tǒng)的最新狀況namespace罚舱。當(dāng)達(dá)到checkpoint條件的某一個(gè)時(shí),就會直接將該信息寫入一個(gè)新的FSImage文件中绎谦,然后通過HTTP傳輸給ANN管闷。

如上圖所示,主要由4個(gè)步驟:

1. SBNN檢查是否達(dá)到checkpoint條件:離上一次checkpoint操作是否已經(jīng)有一個(gè)小時(shí)窃肠,或者HDFS已經(jīng)進(jìn)行了100萬次操作包个。

2. SBNN檢查達(dá)到checkpoint條件后,將該namespace以fsimage.ckpt_txid格式保存到SBNN的磁盤上,并且隨之生成一個(gè)MD5文件碧囊。然后將該fsimage.ckpt_txid文件重命名為fsimage_txid树灶。

3. 然后SBNN通過HTTP聯(lián)系A(chǔ)NN。

4. ANN通過HTTP從SBNN獲取最新的fsimage_txid文件并保存為fsimage.ckpt_txid糯而,然后也生成一個(gè)MD5天通,將這個(gè)MD5與SBNN的MD5文件進(jìn)行比較,確認(rèn)ANN已經(jīng)正確獲取到了SBNN最新的fsimage文件熄驼。然后將fsimage.ckpt_txid文件重命名為fsimage_txit像寒。

通過上面一系列的操作,SBNN上最新的FSImage文件就成功同步到了ANN上瓜贾。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末诺祸,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子祭芦,更是在濱河造成了極大的恐慌筷笨,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件实束,死亡現(xiàn)場離奇詭異奥秆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)咸灿,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進(jìn)店門构订,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人避矢,你說我怎么就攤上這事悼瘾。” “怎么了审胸?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵亥宿,是天一觀的道長。 經(jīng)常有香客問我砂沛,道長烫扼,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任碍庵,我火速辦了婚禮映企,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘静浴。我一直安慰自己堰氓,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布苹享。 她就那樣靜靜地躺著双絮,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上囤攀,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天软免,我揣著相機(jī)與錄音,去河邊找鬼焚挠。 笑死或杠,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宣蔚。 我是一名探鬼主播,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼认境,長吁一口氣:“原來是場噩夢啊……” “哼胚委!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起叉信,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤亩冬,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后硼身,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體硅急,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年佳遂,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了营袜。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,852評論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡丑罪,死狀恐怖荚板,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情吩屹,我是刑警寧澤跪另,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布,位于F島的核電站煤搜,受9級特大地震影響免绿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜擦盾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一嘲驾、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧厌衙,春花似錦距淫、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春彤枢,著一層夾襖步出監(jiān)牢的瞬間狰晚,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工缴啡, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留壁晒,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓业栅,卻偏偏與公主長得像秒咐,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子碘裕,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,851評論 2 361

推薦閱讀更多精彩內(nèi)容

  • HDFS是Hadoop Distribute File System 的簡稱携取,也就是Hadoop的一個(gè)分布式文件系...
    大佛愛讀書閱讀 875評論 0 0
  • 1. 基本概念 1.1 hdfs是什么? 分布式的文件系統(tǒng),由多個(gè)服務(wù)器聯(lián)合起來實(shí)現(xiàn)功能帮孔。用來解決海量數(shù)據(jù)的存儲問...
    Java旅行者閱讀 540評論 0 1
  • 誰道修行泯人性文兢? 銷魂銷骨化丹氣晤斩! 濃稠過罷云淡清, 展之天地收微塵姆坚! 只能服氣澳泵,玩不了!吃不了苦兼呵![害羞] 界于...
    縱情嬉戲天地間閱讀 121評論 0 0
  • 城建稅附加征收烹俗,計(jì)稅基礎(chǔ)流轉(zhuǎn)稅 市區(qū)是七縣鎮(zhèn)五,其他海油都是? 增值消費(fèi)算查補(bǔ)萍程,出?免抵增值稅 不含滯納?罰款幢妄,進(jìn)...
    3組30彭唯婧閱讀 110評論 0 0