我有kerberos并启用了hadoop集群。我需要使用java代码执行hdfs操作。我有 keytab 文件和用户名。有人能建议我如何使用java代码对kerberos进行身份验证吗?谢谢。
keytab
kzipqqlq1#
如果您只想将hdfsjavaapi用于短期连接,那么 UserGroupInformation 有一个 loginUserFromKeytab 方法。如果您想要一个持久的连接(即,比初始kerberos tgt的生存期更长),那么请查看该post。如果您对kerberos的阴暗面感兴趣(好吧,反正也没有其他的阴暗面),那么请看一看“疯狂超越大门”的在线书籍——风险自负。
UserGroupInformation
loginUserFromKeytab
顺便说一句,javaapi还有一种替代方法:webhdfs rest服务。但是在windows上,您仍然需要一些java代码来创建kerberos tgt(使用gssapi,即linux方式,而不是sspi,即microsoft方式!!!),运行spnego初始身份验证,并检索委派令牌。此时,任何https库都可以使用该令牌处理文件操作。
1条答案
按热度按时间kzipqqlq1#
如果您只想将hdfsjavaapi用于短期连接,那么
UserGroupInformation
有一个loginUserFromKeytab
方法。如果您想要一个持久的连接(即,比初始kerberos tgt的生存期更长),那么请查看该post。
如果您对kerberos的阴暗面感兴趣(好吧,反正也没有其他的阴暗面),那么请看一看“疯狂超越大门”的在线书籍——风险自负。