HA概念:
high avalability 高可用性。
hadoop 1.x非ha設計
Secondnode對元數據的可靠性有了保障,但服務的可用性不高。
即:當Namenode節點宕機了,整個hadoop就不能使用了,影響了client的使用。
hadoop 2.x的ha設計
新增了一個NameNode節點,擁有了2個NameNode節點,但一個狀態是 active,一個狀態是 standby(備用)。
standby的數據和active的一樣。
當 active節點宕機的時候,standby節點必須無縫切換為 active狀態。
兩個節點的edits必須完全一樣。但是兩個NameNode部署在不同機器上,節點的 edits內容是通過網絡同步的,在active宕機的時候,standby的edits不一定是最新的。如何保證實時性,達到無縫切換?
方法:將NameNode節點的edits內容放到分布式的集群里。NameNode去讀寫這個集群。
hadoop為此開發了一個專門管理 edits的分布式框架:qjournal,一個依賴于 zookeeper的框架。