hadoop采用日志隔離雙寫和ZKFC兩個機制預(yù)防腦裂。
1. JournalNode集群會為主節(jié)點設(shè)置一個Epoch并分發(fā)到各個JN節(jié)點,當(dāng)發(fā)生主備切換時,會將Epoch+1賦予新的主節(jié)點和各個JN節(jié)點
2. JN在接收日志前會檢查主節(jié)點Epoch是否小于自己,如果小于則拒絕寫入。
3. 每個NN啟動一個ZKFC進程,利用ZK的選舉完成主備選舉,恢復(fù)連接的主節(jié)點會被通知切換為備節(jié)點