30.1 问题情况
- 在CDH集群中启用了Kerberos服务后,通过zookeeper-client登录Kerberos删除服务的注册信息时报“Authentication isnot valid”,具体操作及异常信息如下。
- Fayson这里已经使用fayson用户kinit后操作的,当然即使用hive的keytab文件kinit后也会报同样的错。
[root@ip-172-31-21-45 ec2-user]# zookeeper-client -server ip-172-31-22-86.ap-southeast-1.compute.internal:2181
...
Welcome to ZooKeeper!
...
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 1] ls /
[cluster, controller, brokers, zookeeper, yarn-leader-election, hadoop-ha, isr_change_notification, admin, controller_epoch, solr, rmstore, consumers, hive_zookeeper_namespace_hive, latest_producer_id_block, config, hbase, hiveserver2_zk]
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 2] rmr /hiveserver2_zk
Authentication is not valid : /hiveserver2_zk/serverUri=ip-172-31-22-86.ap-southeast-1.compute.internal:10000;version=1.1.0-cdh5.11.2;sequence=0000000000
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 3]
30.2 解决方法
- 获取要删除的注册目录的ACL
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 1] getAcl /hiveserver2_zk
'world,'anyone
: r
'sasl,'hive
: cdrwa
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 2]
- 编写jaas-zk-keytab.conf文件
[root@ip-172-31-21-45 ec2-user]# vim jaas-zk-keytab.conf
Client {
com.sun.security.auth.module.Krb5LoginModule required
useKeyTab=true
keyTab="/home/ec2-user/hive.keytab"
storeKey=true
useTicketCache=false
principal="hive/ip-172-31-21-45.ap-southeast-1.compute.internal@CLOUDERA.COM";
};
- 在执行zookeeper-client前将jaas-zk-keytab.conf加载到环境变量
[root@ip-172-31-21-45 ec2-user]# export CLIENT_JVMFLAGS="-Djava.security.auth.login.config=jaas-zk-keytab.conf"
[root@ip-172-31-21-45 ec2-user]# zookeeper-client -server ip-172-31-22-86.ap-southeast-1.compute.internal:2181
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 0] rmr /hiveserver2_zk
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 1] ls /
[cluster, controller, brokers, zookeeper, yarn-leader-election, hadoop-ha, isr_change_notification, admin, controller_epoch, solr, rmstore, consumers, hive_zookeeper_namespace_hive, latest_producer_id_block, config, hbase]
[zk: ip-172-31-22-86.ap-southeast-1.compute.internal:2181(CONNECTED) 2]
删除成功。
30.2.1 总结
- 在启用Kerberos环境下的ZooKeeper,如果需要删除服务,如:
- hive、hbase、hdfs等
- 注册信息时,需要先获取到该目录的ACL权限,根据ACL权限使用不同服务的keytab文件kinit后进行删除,否则会报“Authentication isnot valid”问题。
大数据视频推荐:
腾讯课堂
CSDN
大数据语音推荐:
企业级大数据技术应用
大数据机器学习案例之推荐系统
自然语言处理
大数据基础
人工智能:深度学习入门到精通