文章目录


对于kerberos认证的大数据集群,由于kerberos认证设置了缓存票据时间为24小时,


设置了定时任务,每次在24小时的时候重新认证并获取hbase连接


在重新获取连接的时候断开连接,此时线上的其他查询服务会在这一瞬间统一宕机


具体解决方案,

try {
UserGroupInformation.loginUserFromKeytab(userName,keyTabFile);

long time = 24 * 60 * 60 * 1000;//24小时循环
new Timer().scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
try {
UserGroupInformation.getLoginUser().checkTGTAndReloginFromKeytab();
} catch (IOException e) {
logger.error("kerberos reloginFromKeytab error", e);
}
}
}, 0, time);
} catch (IOException e) {
logger.error("kerberos init error", e);
}

在获取认证的时候设置定时重新认证,而不是重新去获取连接