• 【zookeeper】问题解决 Authentication is not valid : /hbase/tokenauth


    前言

    最近在搭建Hbase 服务时,服务无法启动,于是决定将 hbase 服务删除,在当删除 zookeeper/hbase 节点时报错,报 thentication is not valid : /hbase/tokenauth
    看到网上大部分的文章都是使用跳过 ACL 或者 开启 super 模式这两种方式,于是比较好奇有没有第三种解,这里整理并记录一下。

    版本

    • zookeeper 3.4.8
    • CDP 7.1.7 (同CDH)

    问题复现

    zookeeper-client -server `hostname`:2181
    
    rmr /hbase
    
    Authentication is not valid : /hbase/tokenauth
    
    • 1
    • 2
    • 3
    • 4
    • 5

    解决方案

    这里将三种方式都列出来。

    一、跳过acl

    CDH 配置方式如下

    CM -> Zookeeper -> Configuration -> "ZooKeeper Service Environment Advanced Configuration Snippet (Safety Valve)"

    添加如下配置

    -Dzookeeper.skipACL=true
    
    • 1

    二、super 模式

    Super模式,顾名思义就是超级用户的意思,为管理员所使用,这也是一种特殊的 Digest 模式。在 Super 模式下,超级用户可以对任意 ZooKeeper 上的数据节点进行任何操作,不会被任何节点的 ACL 所限制。

    1. 配置环境变量

    找到 /bin/zkServer.sh 文件。添加如下:

    -Dzookeeper.DigestAuthenticationProvider.superDigest=super:zUZ0bpqYS7FucDXsnUgxOWTto1s=
    
    • 1

    其中,super 代表了一个超级管理员的用户名;zUZ0bpqYS7FucDXsnUgxOWTto1s= 是由 ZooKeeper 的系统管理员自主配置密码的两次编码处理后的密文,此例中使用的是 super:root 的编码。

    三、sasl 认证

    以上两种方式,其实都不是正常的解决方式,一种时跳过 ACL 认证,一种是添加一个super 账号,来强制删除。那么正常的认证方式到底时如何的。

    1. 编写jaas.conf文件

    Client {
           com.sun.security.auth.module.Krb5LoginModule required
           useKeyTab=true
           keyTab="/path/to/client/keytab"
           storeKey=true
           useTicketCache=false
           principal="hbase@TEST.com";
    };
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    2. 添加环境变量

    export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=/path/jaas.conf"
    
    • 1

    3. 使用zookeeper-client

    zookeeper-client -server `hostname`:2181
    
    • 1

    4. 查看ACL

    getAcl /hbase/tokenauth
    'sasl,' hbase
    : cdrwa
    
    • 1
    • 2
    • 3

    总结

    SASL 身份验证方案与某些其他方案的不同之处在于,如果方案是sasl,则addauth 命令无效。这是因为身份验证是在连接后立即使用启用 SASL 的令牌交换执行的,而不是像 addauth 那样在连接后的任何时间发生。

    相关链接

    • http://smartsi.club/zookeeper-acl-access-permission-control-mechanism.html
    • https://cwiki.apache.org/confluence/display/ZOOKEEPER/Client-Server+mutual+authentication
  • 相关阅读:
    01_openstack概述
    Linux常用命令
    第一章 动态网页基础 ① 笔记
    大数据Flink(九十六):DML:Deduplication
    Java中的23种设计模式
    【AutoSAR CAN】01 - CAN 标识符(CanID)长度配置
    百度文心一言API调用,千帆大模型获取API Key和API Secret图解
    6-3应用层-文件传输协议FTP
    成功解决 IDEA 2020 版本 代码报错不提示的几种方案
    数组中出现次数超过一半的数字、替换空格、重建二叉树
  • 原文地址:https://blog.csdn.net/Mrerlou/article/details/126116245