Hadoop&Hbase 備份方案
--AvatarNode
需求
實現namenode的雙機熱備,保證Hadoop&Hbase的高可用性(HA)。
方案描述
當主namenode所在服務器宕機的時候,其服務和數據可迅速,完整,無縫的遷移到備份namenode從而保證hadoop集羣的高可用性,持續的向外提供服務。
測試環境
虛擬機5臺(1G內存,40G硬盤,ubuntu操作系統,Hadoop-0.20.2)
hadoop1-virtual-machine1 10.10.11.250 AvatarNode(Primary)
hadoop2-virtual-machine5 10.10.11.152 AvatarDataNode
hadoop3-virtual-machine1 10.10.11.160 AvatarDataNode
hadoop4-virtual-machine5 10.10.11.184 AvatarDataNode
hadoop5-virtual-machine1 10.10.12.25 AvatarNode(Standby)
測試步驟
1.部署好Hadoop(AvatarNode部署詳情見部署文檔)集羣環境,。
2.啓動集羣,此時AvatarNode(Primary)正常向外提供服務,AvatarNode(Standby)處於safemode狀態,只可讀,不可寫。
3.存儲數據,集羣正常使用。
4.Kill掉AvatarNode(Primary)線程(模擬Primary節點宕機)。
5.升級AvatarNode(Standby)爲Primary(切換時間很短只需幾秒)。
6.集羣正常服務,數據未丟失。
問題及可行性分析
1. 該方案可以實現AvatarNode(Primary)故障時與AvatarNode(Standby)的迅速切換,同時可以保證數據的完整性,切換過程中不會有數據丟失,稱得上爲真正意義上的熱備。
2. 該方案雖然可以實現AvatarNode(Primary)與AvatarNode(Standby)的快速切換,但目前還不支持自動切換,可以藉助於zookeeper的lease機制實現。同時由於Primary與Standby的轉換隻能是由Standby轉換成Primary,並不支持由Primary降級爲Standby,所以暫時不支持二次故障。也就是說由Standby升級爲Primary的節點發生故障時,不支持切換。
3. 該方案必須藉助於NFS實現AvatarNode(Primary)與AvatarNode(Standby)之間事務日誌的共享,故存在NFS故障的問題。
4. 該方案AvatarDataNode並不使用VIP和AvatarNode通信,而是直接與Primary及Standby通信,故需要使用VIP漂移方案來屏蔽兩個節點間切換過程中的IP變換問題,掛載Hbase時更需如此。