安全的hbase应用程序 - kerberos身份验证

时间:2015-03-06 02:00:41

标签: security hbase kerberos keytab

我正在运行一个无限循环来测试kerberos凭证的到期时间,我有以下代码。

UserGroupInformation.loginUserFromKeytab(user, keytablocn);
Configuration config = HBaseConfiguration.create();
HConnection conn = HConnectionManager.createConnection(config);

for (;;) {
HTableInterface ht = conn.getTable(tableName);
getAndPriintRow(rowkey);
}

我希望kerberos凭证在程序启动后大约10小时到期(使用keytab的linux shell上的kinit需要在我们的环境中大约10小时后重新登录)。

然而,我在大约10小时后在日志中看到的是:

  

15/03/06 12:39:54 DEBUG   org.apache.hadoop.security.UserGroupInformation:PrivilegedAction   为:的 *(AUTH:KERBEROS)   来自:org.apache.hadoop.hbase.ipc.RpcClient $ Connection.handleSaslConnectionFailure(RpcClient.java:796)   15/03/06 12:39:54调试   org.apache.hadoop.security.UserGroupInformation:启动注销   * 15/03/06 12:39:54 DEBUG org.apache.hadoop.security.UserGroupInformation:hadoop logout   15/03/06 12:39:54调试   org.apache.hadoop.security.UserGroupInformation:启动重新登录   for *** 15/03/06 12:39:55 DEBUG   org.apache.hadoop.security.UserGroupInformation:hadoop login

以某种方式调用了checkTGTAndReloginFromKeytab()方法。我无法弄清楚如何调用此方法。这允许程序永久运行。这是设计和relogin是什么?

1 个答案:

答案 0 :(得分:1)

这是按照设计。当会话到期时,它将尝试重新登录 此功能使HBase客户端在应用程序服务器中使用时可以保持永恒。