使用java对支持kerberos的hadoop集群进行身份验证

5anewei6  于 2021-06-03  发布在  Hadoop
关注(0)|答案(1)|浏览(402)

我有kerberos并启用了hadoop集群。我需要使用java代码执行hdfs操作。
我有 keytab 文件和用户名。
有人能建议我如何使用java代码对kerberos进行身份验证吗?
谢谢。

kzipqqlq

kzipqqlq1#

如果您只想将hdfsjavaapi用于短期连接,那么 UserGroupInformation 有一个 loginUserFromKeytab 方法。
如果您想要一个持久的连接(即,比初始kerberos tgt的生存期更长),那么请查看该post。
如果您对kerberos的阴暗面感兴趣(好吧,反正也没有其他的阴暗面),那么请看一看“疯狂超越大门”的在线书籍——风险自负。

顺便说一句,javaapi还有一种替代方法:webhdfs rest服务。但是在windows上,您仍然需要一些java代码来创建kerberos tgt(使用gssapi,即linux方式,而不是sspi,即microsoft方式!!!),运行spnego初始身份验证,并检索委派令牌。此时,任何https库都可以使用该令牌处理文件操作。

相关问题