You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ubuntu下Hadoop Kerberos环境NameNode格式化登录失败求助

问题:Ubuntu 20.04.1 LTS上Hadoop Kerberos集群NameNode格式化时Kerberos登录失败

错误信息

Exiting with status 1: org.apache.hadoop.security.KerberosAuthException: failure to login: for principal: hdfs/hadoopmaster.406bigdata.com@406BIGDATA.COM from keytab /etc/security/keytabs/hdfs.service.keytab javax.security.auth.login.LoginException: Unable to obtain password from user

环境与已确认信息

  • 主节点主机名:hadoopmaster
  • Kerberos Realm:406BIGDATA.COM
  • keytab路径:/etc/security/keytabs/hdfs.service.keytab,已通过klist -t -k -e确认包含正确principal:hdfs/hadoopmaster.406bigdata.com@406BIGDATA
  • YARN服务Kerberos配置正常,可正常启动并访问WebUI

排查与解决方案

1. 修复hdfs-site.xml的语法错误

从提供的配置片段可见,第一个<property>标签的闭合标签存在语法错误:

&lt;property
<!-- 正确应为 &lt;/property&gt; -->

这个错误会导致Hadoop无法正确加载dfs.namenode.keytab.file配置项,进而无法定位keytab文件引发登录失败。请修正为:

<property>
       <name>dfs.namenode.keytab.file</name>
       <value>/etc/security/keytabs/hdfs.service.keytab</value>
</property>

<property>
       <name>dfs.namenode.kerberos.principal</name>
       <value>hdfs/hadoopmaster.406bigdata.com@406BIGDATA.COM</value>
</property>

2. 统一Principal的Realm大小写

klist显示keytab中principal的Realm为406BIGDATA,但hdfs-site.xml配置的是406BIGDATA.COM。虽然Kerberos对Realm大小写不敏感,但保持一致可避免潜在解析问题,建议将配置中的principal修改为与keytab匹配的版本:

<property>
       <name>dfs.namenode.kerberos.principal</name>
       <value>hdfs/hadoopmaster.406bigdata.com@406BIGDATA</value>
</property>

3. 验证keytab的登录可用性

切换到hdfs用户,直接测试keytab的登录功能:

su - hdfs
kinit -kt /etc/security/keytabs/hdfs.service.keytab hdfs/hadoopmaster.406bigdata.com@406BIGDATA.COM

若执行成功,用klist确认已获取票据;若失败,说明keytab存在问题(如生成时principal不匹配、密钥版本不一致),需重新生成:

# 在Kerberos KDC服务器执行
kadmin.local -q "xst -k /etc/security/keytabs/hdfs.service.keytab hdfs/hadoopmaster.406bigdata.com@406BIGDATA.COM"
# 复制到主节点并修正权限
scp /etc/security/keytabs/hdfs.service.keytab hadoopmaster:/etc/security/keytabs/
chown hdfs:hadoop /etc/security/keytabs/hdfs.service.keytab
chmod 600 /etc/security/keytabs/hdfs.service.keytab

4. 确认Hadoop进程的JAAS配置

检查hadoop-env.sh,确保添加了正确的JAAS配置参数:

export HADOOP_OPTS="$HADOOP_OPTS -Djava.security.auth.login.config=/etc/hadoop/conf/jaas.conf"

jaas.conf中需包含HDFS相关登录配置:

HDFS_NAMENODE {
    com.sun.security.auth.module.Krb5LoginModule required
    useKeyTab=true
    keyTab="/etc/security/keytabs/hdfs.service.keytab"
    principal="hdfs/hadoopmaster.406bigdata.com@406BIGDATA.COM";
};

5. 验证主机名解析

执行hostname -f确认主节点完全限定域名(FQDN)为hadoopmaster.406bigdata.com,与principal中的主机部分完全一致。同时检查/etc/hosts文件,确保FQDN指向正确IP:

192.168.x.x  hadoopmaster.406bigdata.com  hadoopmaster

内容的提问来源于stack exchange,提问作者MaxRS7_

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 12:45:33