hbase无法执行脚本停止服务问题分析
问题现象:hbase执行stop-hbase.sh无法停止hbase进程
定位过程:
1. 执行脚本发现脚本在执行了停止命令后一直在循环查询hbase状态
2. 而停止命令使用的是hbase自身的命令
nohup nice -n 0 /opt/apache-hadoop/hbase/bin/hbase --config /opt/apache-hadoop/hbase/conf master stop
3. 手动执行此命令发现报认证失败问题
4. 根据以上信息确认为认证失败导致无法执行脚本
问题分析结论:
1. Hbase的stop-hbase.sh脚本其实是调用hbase客户端命令执行,因此需要认证
2. 在无法认证的时候由于脚本的不健全性导致了无法暴露报错堆栈信息
3. 因此在执行此脚本前需要kinit认证
kinit -kt /etc/security/keytab/hbase.keytab hbase/hadoop01.xxx.com@XXX.COM
4. 优化方式:可以在stop-hbase.sh脚本前两行加入kinit命令并判断echo $?=0 在执行下面的逻辑