java - HBase with Kerberos - 保持 HTable 实例打开超过 10 小时

标签 java hbase kerberos

情况是这样的:我们有一个安全的 (Kerberos) HBase 集群。 我有一个在启动时创建 HTable 实例并卡在它上面的对象。它调用:

UserGroupInformation.setConfiguration(configuration);
UserGroupInformation.loginUserFromKeytab(user, keytab);

登录 Kerberos 集群。 然后这个对象闲置了好几个小时。 10 多个小时后(来 self 们的 Kerberos 集群的票证超时),下一次扫描表的调用结果如下:

16/12/01 18:16:24 WARN security.UserGroupInformation: PriviledgedActionException as:bigdata-app-analyticscore-msr@INTQA.THOMSONREUTERS.COM (auth:KERBEROS) cause:javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
16/12/01 18:16:24 WARN ipc.RpcClient: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
16/12/01 18:16:24 FATAL ipc.RpcClient: SASL authentication failed. The most likely cause is missing or invalid credentials. Consider 'kinit'.
- javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
- at com.sun.security.sasl.gsskerb.GssKrb5Client.evaluateChallenge(GssKrb5Client.java:211)
- etc.

如何保持 Kerberos 身份验证有效?

最佳答案

我刚好在这个论坛上做了一些研究。此处的问题陈述(Kerberos 身份验证在 10 小时后终止)与该线程的问题陈述几乎相同:

Renewing a connection to Apache Phoenix (using Kerberos) fails after exactly 10 hours

实际上,我今天早些时候刚刚编辑了该主题并将“10 小时”放入主题行。该线程包含一些关于在这里做什么的很好的建议。我将继续并借用 Samson Scharfrichter 提供的智慧,他在其中指出:“标准解决方案是生成一个后台线程,定期调用 checkTGTAndReloginFromKeytab()——请参阅 Should I call ugi.checkTGTAndReloginFromKeytab() before every action on hadoop? 以获得 HortonWorks 的非常详尽的解释guru(写那本关于 Hadoop 和 Kerberos 的 GitBook 的人的同事)”

我希望这能为您指明方向。

关于java - HBase with Kerberos - 保持 HTable 实例打开超过 10 小时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40917698/

相关文章:

java - 如何通过传递查询来删除 Firestore 文档?

java - 如何检查所有 JTexFields 是否为空?

java - apache-commons-net 中的 DebugException

python - Twisted Python 客户端/服务器的 Kerberos 身份验证

perl - 使用 perl 和 webdav 访问共享点

java - 如何在同一个输入对话框中随机传递两个不同的问题?

hadoop - 打开连接后,gremlin外壳挂起

node.js - NodeJS Hbase 节俭怪异

hadoop - Oozie Xml工作流程架构验证错误

macos - 安装 Erlang 时出现 "configured for kerberos but no krb5.h found"