文章目录
对于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);}
在获取认证的时候设置定时重新认证,而不是重新去获取连接