筆記:hadoop的雙NN機制

雙namenode保證高可用,

隨之而來帶來很多問題:

1、2臺namenode之間的數據同步問題,edits的數據。

如果實時的同步,會造成client訪問緩慢。如果批同步,會造成很多數據丟失。

採取將數據edits抽取出來的方式。

2、抽取出edits到第3方,也得考慮第3方的高可用,用edits集羣的方式解決。底層依賴zookeeper。qjournal進程。

3、2臺namenode,只能一臺active,一臺standby,否則就會造成數據的同步複雜度大量提高。

4、如何保證2臺namenode之間的無縫切換?

每個namenode有1個單獨的進程,監控自身namenode狀態,掛掉了,就回去zookeeper裏寫掛掉的狀態。

standby的namenode拿到狀態,切換爲active。

5、有可能出現掛掉的namenode並未真正掛掉的情況,2個active會出現腦裂。

避免這個情況,第2臺備namenode啓動時,會主動ssh kill第1個namenode,成功了再切換自己爲active。

6、有可能出現kill不成功,超時的情況。這時候會執行用戶自定義的shell腳本。(關閉第1個機器電源等操作)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章