HBase Kerberos 连接更新策略

标签 hbase kerberos

最近我在集群中启用了 kerberos,一切正常,直到我的 kerberos 登录过期,比如 12 小时。那时我创建的任何连接、使用这些连接创建的任何表等都会在我使用它们时抛出。根据我的处理方式,这可能会使我的应用程序崩溃。

我不介意严重崩溃,因为我的应用程序是由 slider 管理的,如果该应用程序出现故障,它将重新启动该应用程序,但是这只会在“使用”HBase 时发生(即,我在一个已经过时的表上调用一个方法连接),这可能是由用户交互引起的,这会导致糟糕的用户体验。

我不希望身份验证实现细节渗透到我的应用程序中,也不希望过于频繁地创建连接对象,因为它是一项成本高昂的操作,会进行大量 RPC 调用(从 Zookeeper 元数据位置开始)。

是否有一种通用策略(最好是内置在 HBase 客户端中)来管理 kerberos 身份验证到期并在发生这种情况时更新 HBase 连接/表?

最佳答案

由于这是一个较旧的问题,很高兴知道 HBase、Hadoop 等的版本。

如今,Kerberos 票证更新应该只在 HBase 中工作

请参阅配置步骤 -

https://docs.cloudera.com/documentation/enterprise/5-14-x/topics/cdh_sg_hbase_authentication.html#concept_zyz_vg5_nt

请参阅配置为使用 TGT 更新的 HBase 客户端示例 -

https://github.com/apache/hbase/blob/064f5f1394faa8e84ad64488345e3bf46629ce59/hbase-examples/src/main/java/org/apache/hadoop/hbase/util/ClientUtils.java#L66

(顺便说一句,renewTGT = true 是默认值,这实际上是 Hadoop Commons 代码库的一部分,请参见此处 -
https://github.com/naver/hadoop/blob/master/hadoop-common-project/hadoop-auth/src/main/java/org/apache/hadoop/security/authentication/client/KerberosAuthenticator.java#L132

)

关于HBase Kerberos 连接更新策略,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33211134/

相关文章:

hadoop - HBase region server和Hadoop数据节点应该在同一台机器上吗?

hadoop - 如何在没有域名的情况下设置Kerberos领域

python - 在 Python 中复制 curl 协商连接(使用 kerberos auth)

web-config - web.config header 大小限制是否会覆盖注册表中的 http.sys 限制?

php - 存储html内容的文档数据库

hadoop - HBase shell - 为历史数据和审计信息建模和检索数据

hbase - 在进行多次插入时,Asynchbase 会引发大量的 Zookeeper 超时。最终它耗尽了内存。为什么?

search - Hbase按部分键搜索?

kerberos - 我可以向客户端表明支持 SPNEGO 但 NTLM 不适用于 HTTP 请求吗?

active-directory - 开发集成的用户管理、身份验证