zookeeper - 设置超级用户

  • Landscape
    zookeeper的节点设置ACL权限控制后,无设置超级用户的情况下,不允许更新ACL。给不少开发者带来许多的困扰,因这样权限一经设定,在没设置超级用户的情况下,无法更新权限。为了达到对所有节点的ACL控制权,这里我们演示如何开通zookeeper超级管理员。

1 导入zookeeper jar包


所需jar包

2 生成加密串

public class SupperAccountSetting {

    public static void main(String[] args) throws NoSuchAlgorithmException {
        String generateDigest = DigestAuthenticationProvider.generateDigest("test:testpwd");
        
        System.out.println(generateDigest);
    }   
}

输出:
test:P5uxC7NoocCV8UOyZLyg3QIoVCM=

此处test为super账号的账号名
testpwd为super账号的密码

3 配置zookeeper
找到zookeeper的安装路径下的bin目录,编辑zkEnv.sh,加入环境变量

"-Dzookeeper.DigestAuthenticationProvider.superDigest=test:P5uxC7NoocCV8UOyZLyg3QIoVCM= $SERVER_JVMFLAGS"

4 重启zookeeper
在zookeeper安装目录的bin目录下执行如下命令:

[cat@host bin] # ./zkServer.sh restart

5 使用super账号操作zookeeper节点

addauth digest test:testpwd

6 重新设置节点权限

setAcl 节点名称 权限策略

你可能感兴趣的:(zookeeper - 设置超级用户)