使用 Java 向启用 Kerberos 的 Hadoop 集群进行身份验证
Authenticating to Kerberos enabled Hadoop Cluster Using Java
我有 Kerberos 并启用了 Hadoop 集群。我需要使用 Java 代码执行 HDFS 操作。
我有 keytab
文件和用户名。
有人可以建议我如何使用 Java 代码验证 Kerberos 吗?
谢谢。
如果您只想使用 HDFS Java API 进行短暂的连接,那么 UserGroupInformation
有一个 loginUserFromKeytab
方法。
如果您想要持久连接(即比初始 Kerberos TGT 的生命周期更长),请查看 。
如果您对 Kerberos 的阴暗面感兴趣 (好吧,反正没有其他面) 然后看看 "Madness beyond the Gate" 在线书籍 --风险自负。
~~~~~~
顺便说一句,Java API 有一个替代方案:WebHDFS REST 服务。但是在 Windows 你仍然需要一些 Java 代码来创建 Kerberos TGT (使用 GSSAPI 即 Linux 方式,而不是 SSPI 即 Microsoft 方式!!!)、运行 SPNEGO 初始身份验证,并检索委托令牌。此时任何 HTTPS 库都将能够使用该令牌处理文件操作。
我有 Kerberos 并启用了 Hadoop 集群。我需要使用 Java 代码执行 HDFS 操作。
我有 keytab
文件和用户名。
有人可以建议我如何使用 Java 代码验证 Kerberos 吗?
谢谢。
如果您只想使用 HDFS Java API 进行短暂的连接,那么 UserGroupInformation
有一个 loginUserFromKeytab
方法。
如果您想要持久连接(即比初始 Kerberos TGT 的生命周期更长),请查看
如果您对 Kerberos 的阴暗面感兴趣 (好吧,反正没有其他面) 然后看看 "Madness beyond the Gate" 在线书籍 --风险自负。
~~~~~~
顺便说一句,Java API 有一个替代方案:WebHDFS REST 服务。但是在 Windows 你仍然需要一些 Java 代码来创建 Kerberos TGT (使用 GSSAPI 即 Linux 方式,而不是 SSPI 即 Microsoft 方式!!!)、运行 SPNEGO 初始身份验证,并检索委托令牌。此时任何 HTTPS 库都将能够使用该令牌处理文件操作。