Hadoop HA的安裝配置
一,HA的架構
Hadoop HA 即Hadoop的高可用,不同於普通的namenode+second namenode的模式,second namenode只能作為namenode的冷備份,當namenode掛掉後,second namenode不能自動充當namenode的角色。所以為了保證高可用性,就有了Hadoop HA的機制。
hdfs HA中即有至少有兩個namenode,這兒以兩個namenode為例,一個可以對外提供服務的namenode成為active namenode,待命狀態的namenode成為standby namenode。
1.如何做到兩個namenode的元資料的一致性呢?
將edits檔案託管給穩定的第三方存放(當然,為了防止第三方掛掉,namenode本地的edits檔案也是必要的),standby namenode就可以定時去第三方取edits檔案放在記憶體中,做元素據的修改。這樣就可以保證actice 和standby的資料一致性。
2.第三方用什麼才能保證高可用?
第三方用的是qjournal叢集,叢集就可以將edits檔案存放在每個機器中。並且這個叢集使用zookeeper作為叢集的協調,保證資料寫入一半以上的機器,才為寫入成功。
3.怎麼做到standby在active節點掛掉自動充當active的角色呢?
這兒在每個namenode對應著一個監控程序ZKFC。在active上ZKFC使用RPC呼叫以判斷active是否掛掉,如果掛掉,那麼在zookeeper上將相應的節點刪除(分散式鎖),在Standby節點上的ZKFC程序就可以感知到節點刪除的資訊。Standby節點上的ZKFC程序感知到active節點掛掉的資訊之後會向active節點發送一個殺死hdfs namenode的命令,確保active死亡,然後再向standby傳送切換的指令,並向zookeeper建立節點。這樣就可以讓standby模式轉換為active模式。
對於resourceManager的HA,因為不存在資料的一致性,所以只需要向zookeeper建立節點(獲得分散式鎖)即可。
---------------------
https://blog.csdn.net/lsr40/article/details/77165453 Hadoop的HA從零開始