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 シェルの kinit では、この環境で約 10 時間後に再ログインが必要です)。
ただし、約10時間後にログに表示されるのは次のとおりです。
15/03/06 12:39:54 DEBUG org.apache.hadoop.security.UserGroupInformation: PrivilegedAction as: *(auth:KERBEROS) from:org.apache.hadoop.hbase.ipc.RpcClient$Connection.handleSaslConnectionFailure(RpcClient. java:796) 15/03/06 12:39:54 DEBUG 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 DEBUG org.apache.hadoop.security.UserGroupInformation: Initiating re-login for *** 15/03/06 12:39:55 DEBUG org.apache.hadoop.security. UserGroupInformation: Hadoop ログイン
checkTGTAndReloginFromKeytab() メソッドが呼び出されました。このメソッドがどのように呼び出されたのかわかりません。これにより、プログラムを永続的に実行できます。これは仕様によるもので、再ログインは何をしますか?