我有Kerberos并启用了Hadoop集群。我需要使用Java代码执行HDFS操作。
我有keytab
个文件和用户名。
有人可以建议我如何使用Java代码验证Kerberos?
感谢。
答案 0 :(得分:0)
如果您只想使用 HDFS Java API 进行短期连接,则UserGroupInformation
会使用loginUserFromKeytab
方法。
如果您想要持久连接(即长于初始Kerberos TGT的生命周期),请查看that post。
如果您对Kerberos 的黑暗面感兴趣(好吧,无论如何没有其他方面)那么请查看"Madness beyond the Gate"在线图书 - 风险自负。
~~~~~~
BTW还有Java API的替代方案: WebHDFS REST服务。但是在Windows上你仍然需要一些Java代码来创建Kerberos TGT (使用GSSAPI,即Linux方式,而不是SSPI,即Microsoft方式!!!),运行SPNEGO初始身份验证,并检索委派令牌。此时,任何HTTPS库都能够使用该令牌处理文件操作。