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

删除回忆录丶 提交于 2019-11-30 10:24:32

项目服务都是发布在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

 

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!