刪除hdfs ha namenode的正常方式是先禁用高可用,今天想試試直接刪除其中一個namenode,於是開始操作,結果剩下的NN無法啟動。 cm頁面報錯:“Nameservice testCluster has no SecondaryNameNode or High-Availability ...
刪除hdfs ha namenode的正常方式是先禁用高可用,今天想試試直接刪除其中一個namenode,於是開始操作,結果剩下的NN無法啟動。
cm頁面報錯:“Nameservice testCluster has no SecondaryNameNode or High-Availability partner”。
解決辦法:
- 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,一切正常了。