hadoop kerberos:hdfs命令“找不到任何kerberos tgt”,尽管我使用kinit获得了一个票证

l2osamch  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(570)

我为hadoop集群设置了kerberos身份验证。当我尝试使用kinit获取kerberos票证时,它将票证存储在krb5cc\u 0中

  1. $ sudo klist
  2. Ticket cache: FILE:/tmp/krb5cc_0
  3. Default principal: hduser/stwhdrm01@FDATA.COM
  4. Valid starting Expires Service principal
  5. 01/04/2018 10:15:14 01/05/2018 10:15:14 krbtgt/FDATA.COM@FDATA.COM

但当我试图在命令行上列出hdfs目录时,出现了以下错误:

  1. $ hdfs dfs -ls /
  2. openjdk version "1.8.0_151"
  3. OpenJDK Runtime Environment (build 1.8.0_151-b12)
  4. OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
  5. Java config name: null
  6. Native config name: /etc/krb5.conf
  7. Loaded from native config
  8. >>>KinitOptions cache name is /tmp/krb5cc_1001
  9. 18/01/04 10:07:48 WARN ipc.Client: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]
  10. 18/01/04 10:07:48 WARN ipc.Client: Exception encountered while connecting to the server : javax.security.sasl.SaslException: GSS initiate failed [Caused by GSSException: No valid credentials provided (Mechanism level: Failed to find any Kerberos tgt)]

我的/etc/krb5.conf:

  1. [logging]
  2. default = FILE:/var/log/krb5libs.log
  3. kdc = FILE:/var/log/krb5kdc.log
  4. admin_server = FILE:/var/log/kadmind.log
  5. [libdefaults]
  6. default_realm = FDATA.COM
  7. dns_lookup_realm = false
  8. dns_lookup_kdc = false
  9. ticket_lifetime = 24h
  10. renew_lifetime = 7d
  11. forwardable = true
  12. default_ccache_name = FILE:/tmp/krb5cc_0
  13. [realms]
  14. FDATA.COM = {
  15. kdc = kdc.fdata.com
  16. admin_server = kdc.fdata.com
  17. }
  18. [domain_realm]
  19. .fdata.com = FDATA.COM
  20. fdata.com = FDATA.COM

操作系统:centos 7
kerberos:mit kerberos 1.5.1
hadoop:apache hadoop 2.7.3
为什么hdfs和kinit使用不同的kerberos ccache文件?

9fkzdhlc

9fkzdhlc1#

因为你打电话给kinit sudo 不是你自己。您的klist输出显示 root .

相关问题