zk- org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for


項目服務都是發布在dubbo+zookeeper上

昨天項目報這個錯。

 

 org.apache.zookeeper.KeeperException$NoAuthException: KeeperErrorCode = NoAuth for

 

查了一下,是說權限不對。但是項目里連接dubbo並沒有密碼。

 

啟動 zkCli.sh 

看了一下根目錄,

 

 

 

發現看其他目錄都好好的,可以查看

 

 

 

看 /dubbo 這個目錄 就查看不了,權限有問題。 /dubbo 這個目錄就是項目發布服務的目錄。

Authentication is not valid

 

可能是因為之前有個同事把這台服務加入了大數據集群。

get rmr dele不了。最后是啟用了超級賬戶進行刪除的。

 

使用超級用戶刪除帶權限的節點

1.使用org.apache.zookeeper.server.auth.DigestAuthenticationProvider生成superDigest:

 

try {  
               System.out.println(DigestAuthenticationProvider.generateDigest("super:superpw"));  
            } catch (NoSuchAlgorithmException e) {  
                // TODO Auto-generated catch block  
                e.printStackTrace();  
            } 

super:g9oN2HttPfn8MMWJZ2r45Np/LIA=

 

 

 

 

2.在zookeeper服務端的zkEnv.sh環境變量中加入以下參數,開啟超級用戶,重啟zookeeper服務端:

SERVER_JVMFLAGS="-Dzookeeper.DigestAuthenticationProvider.superDigest=super:g9oN2HttPfn8MMWJZ2r45Np/LIA= $SERVER_JVMFLAGS"  

 

 

 

 

 

 

3.在客戶端使用超級用戶登陸

addauth digest super:superpw

4.執行刪除命令

rmr /dubbo

deleteall /dubbo

 

zk命令集合

https://blog.csdn.net/dandandeshangni/article/details/80558383

https://www.iteye.com/blog/shift-alt-ctrl-1943424

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM