带kerberos的hbase-使htable示例保持打开超过10小时

eagi6jfj  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(394)

情况是这样的:我们有一个安全的(kerberos)hbase集群。我有一个对象,它在启动时创建htable的示例并将其挂起。它叫:

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

登录到kerberized集群。然后,这个对象会闲置好几个小时。超过10个小时后(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身份验证有效?

fwzugrvs

fwzugrvs1#

我刚才碰巧在这个论坛上做一些研究。这里的问题语句(kerberos身份验证在10小时后终止)与此线程的问题语句几乎相同:
更新到apachephoenix的连接(使用kerberos)在10小时后失败
实际上,我今天早些时候刚刚编辑了那篇文章,把“10小时”放在了主题行。这篇文章包含了一些关于在这里做什么的好建议。我将继续借用samson scharfrichter提供的好智慧,他在书中说:“标准解决方案是生成一个定期调用checktgtandreloginfromkeytab()的后台线程——看看在hadoop上的每个操作之前我是否应该调用ugi.checktgtandreloginfromkeytab()?一位hortonworks大师(写了那本关于hadoop和kerberos的gitbook的人的同事)非常详细的解释
我希望这能给你指明方向。

相关问题