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