刪除hdfs ha namenode的正常方式是先禁用高可用,今天想試試直接刪除其中一個namenode,因而開始操做,結果剩下的NN沒法啓動。java
cm頁面報錯:「Nameservice testCluster has no SecondaryNameNode or High-Availability partner」。node
解決辦法:app
- hdfs配置裏搜索原來的nameservice名(個人是testCluster),刪除掉搜索出來的 namenode nameservice 和 quorum journal。
- 實例裏刪除journal node,添加SecondaryNamenode。
- 重啓nn,報錯「java.io.IOException: There appears to be a gap in the edit log. We expected txid 113850025, but got txid 113855934.」看到這個日誌相信你已經明白緣由了。
- 把刪除的nn節點目錄下的數據所有(也能夠按需挑選)覆蓋到當前nn節點目錄下。(保守起見能夠現把本節點目錄備份後再刪除)
- 重啓nn,一切正常了。