大数据平台:MRS 8.1.2.2

最近集群出现了问题,zookeeper组件常常自动恢复,且造成了hive、hbase等组件在zookeeper上注册失败。

通过观察zookeeper日志,发现大量“WARN CommitProcessor Message:Digests are not matching. Value is Zxid. Value:”

再后来zookeeper重启时遇到“clients credentials have been revoked (18) locked_out”,造成zookeeper启动失败!

反馈hw的技术支持人员,未获取支持。

由于修复紧急程度比较高,因为决定自己去处理。

现将过程整理如下:

1)重装zookeeper组件

由于mrs前一段时间算是进行了升级,加上前一段时间确实也出现过zookeeper的一个问题,因为尝试清理掉员原来的所有数据然后重装zookeeper解决。最终也是未解决!

在重装后,启动zookeeper直接失败,分析日志,是没有“killProces”命令,分析其启动脚本发现是“zookeeper-oam.sh”启动脚本有个错误,启动直接失败。

修复后,zookeeper可以启动了,但启动时仍报以前的错误“clients credentials have been revoked (18) locked_out”,启动失败。

2)分析原因并解决

静下心来分析错误原因,上面的错误大概率是什么账户认证(zookeeper的)出现了问题。

(1)通过kadmin命令,再使用“listprinc”获取所有认证账户,查看(也可以通过配置)zookeeper相关的认证用户可能的有:

zookeeper@HADOOP.COM

zookeeper/hadoop.hadoop.com@HADOOP.COM

zkcli/HADOOP.COM

(2)分别找到对应的keytab文件,手动进行kerberos认证验证。经过多次验证发现“zookeeper/hadoop.hadoop.com@HADOOP.COM”对应的账户确实是被锁定了,

使用“modprinc -unlock "命令解锁,再次认证就可以认证了。

但过一段时间又出问题了,认证时又报““clients credentials have been revoked while getting initial credentials”错误,发现账户又被锁定了。

(3)因此需要分析到底是什么程序锁定了这个账户

通过分析kerberos的日志“krb5kdc.log”发现了对应的服务器,去上面找到对应的程序,果然其认证时使用的内部账户“zookeeper”对应的keytab“zookeeper.keytab",将对应的程序停掉,zookeeper账户再也没有被锁定;zookeeper服务正常启动。

问题的原因:大概是其他同事使用zookeeper的内部账户进行了认证,且可能是使用的之前升级前的集群的zookeeper.keytab.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐