Kerberos常见错误及解决方案

1、 Kerberos启动后台日志提示异常:No such file or directory – while initializing database for realm HADOOP.COM
在/var/log/krb5kdc.log中发现No such file or directory – while initializing database for realm HADOOP.COM。
解决方案:

①: 检查kdc.conf和krb5.conf文件是否配置正确,修改配置,注意:配置文件的[kdcdefaults],[logging]、[libdefaults]等的里面不能有空格

② 停止服务

service krb5kdc stop
service kadmin stop

③ 删除Kerberos数据库重新创建数据库

rm -rf /var/kerberos/krb5kdc/principal

kdb5_util create -s -r HADOOP.COM

④ 创建管理员

kadmin.local -q “addprinc admin/admin”

⑤ 启动服务

service krb5kdc start
service kadmin start

2、 kinit通过keytab认证出现异常

通过 Linux 的 brack 主体执行kinit -kt /root/brack.keytab brack出现下面情况:

kinit: ??? while getting initial credentials
或者
kinit: Permission denied while getting initial credenti

解决方式:

① 使用root用户修改brack.keytab的所属用户:

chown brack /root/brack.keytab

② 修改 brack.keytab 的权限为660

chmod 660 /root/brack.keytab

3、 kinit认证时密码输入正确却提示密码错误

[root@hadoop102 ~]# kinit brack
Password for brack@HADOOP.COM:
kinit: Password incorrect while getting initial credentials

这是因为atguigu已经生成了keytab,所以此时通过这种方式不能认证,需要通过keytab文件来认证,或者修改密码后再认证(修改密码后之前的keytab文件会失效)。

[root@hadoop102 ~]# kinit -kt /root/brack.keytab atguigu
[root@hadoop102 ~]# klist
Ticket cache: FILE:/tmp/krb5cc_0
Default principal: brack@HADOOP.COM

Valid starting Expires Service principal
03/27/19 16:00:39 03/28/19 16:00:39 krbtgt/HADOOP.COM@HADOOP.COM
renew until 03/27/19 16:00:39

4、创建数据库异常

Bad krb5 admin server hostname while initializing kadmin interface

原因:在 krb5.conf 文件中为 admin_server 配置了无效的主机名。

解决方案:

修改krb5文件,检查admin_server配置是否正确的主机名,修改后,重启执行创建数据库的命令。
5、 Zookeeper集群启动异常

异常信息:Could not configure server because SASL configuration did not allow the ZooKeeper server to authenticate itself properly: javax.security.auth.login.LoginException: No password provided

问题:属于认证凭证更新问题

解决办法:ZooKeeper 启动安全机制,重新生成Krb5凭证。

每个主机重新更新凭证方法:全部服务停止和Cloudera Manager服务停止,修改Kerberos配置中的 Kerberos 加密类型随便添加一个,就可以主机更新Krb5凭证,然后在改回去在重新生成一次
6、 Hue启动,Kerberos Ticket Renewer起不来

[root@hadoop102 ~]# kinit hue
Password for hue@HADOOP.COM:

[root@hadoop102 ~]# kadmin.local
Authenticating as principal hue/admin@HADOOP.COM with password.

kadmin.local: modprinc -maxrenewlife 90day krbtgt/HADOOP.COM@HADOOP.COM
Principal “krbtgt/HADOOP.COM@HADOOP.COM” modified.

kadmin.local: modprinc -maxrenewlife 90day +allow_renewable krbtgt/HADOOP.COM@HADOOP.COM
Principal “krbtgt/HADOOP.COM@HADOOP.COM” modified.

<think>嗯,用户想找Hadoop YARN ResourceManager启动失败的原因和解决方法。根据提供的引用内容,我需要先整理可能的原因。首先,引用[1]提到启动Yarn时ResourceManager没有出现,可能是配置问题,比如内存设置不够或者端口冲突。然后,引用[3]和[4]提到未授权访问漏洞,虽然这更多是安全问题,但可能和配置相关,比如某些端口开放导致的问题。不过用户的问题主要是启动失败,所以可能更关注配置错误、环境变量或日志检查。 接下来,可能的原因还包括权限问题,比如目录权限不正确,或者Hadoop用户没有足够的权限。另外,集群节点通信问题也可能导致ResourceManager启动失败,比如防火墙设置阻止了节点间的通信。还有资源不足的情况,比如内存或磁盘空间不足,导致进程无法启动。 解决方案方面,需要逐步排查。首先检查配置文件,如yarn-site.xml和core-site.xml,确认参数是否正确。然后查看日志文件,特别是ResourceManager的日志,寻找错误信息。然后检查端口占用情况,使用netstat命令看看默认端口是否被占用。此外,确保环境变量和权限设置正确,特别是Hadoop相关的目录权限。还有集群节点之间的SSH无密码登录是否配置正确,避免通信问题。最后,确保系统资源足够,比如内存和磁盘空间。 另外,引用[1]中的用户遇到了启动后ResourceManager没有出现的情况,可能和配置文件中的节点配置有关,比如没有正确指定主节点的主机名或IP地址。需要检查yarn.resourcemanager.hostname是否设置正确。同时,内存参数如yarn.scheduler.maximum-allocation-mb是否分配合理,避免因内存不足导致启动失败。 安全配置方面,虽然未授权访问漏洞主要影响安全性,但错误的配置可能间接导致服务启动异常。比如,如果某些端口被错误地关闭或配置错误,可能影响ResourceManager的正常启动。需要确保必要的端口如8088、8030-8033等是开放的,并且没有被防火墙阻止。 还有可能的问题包括Java版本不兼容,Hadoop对Java版本有特定要求,需要确认安装的Java版本是否符合要求,并且JAVA_HOME环境变量是否正确设置。此外,Hadoop的配置文件可能存在语法错误,比如XML格式不正确,这也会导致启动失败。 总结一下,用户需要按照步骤检查配置文件、日志、端口占用、权限、资源、网络通信和Java环境等方面。逐一排除这些可能的原因,找到具体的问题所在,然后进行相应的调整和修复。</think>### Hadoop YARN ResourceManager 启动失败原因与解决方法 #### 一、常见启动失败原因分析 1. **配置错误** - **端口冲突**:ResourceManager默认使用端口`8088`(Web UI)和`8030-8033`(内部通信),若被占用会导致启动失败[^1][^3] - **内存分配不足**:Hadoop配置文件中未正确设置`yarn.scheduler.maximum-allocation-mb`等内存参数,可能导致进程因资源不足而终止 - **主节点配置错误**:`yarn-site.xml`中未正确指定`yarn.resourcemanager.hostname`或`core-site.xml`中`fs.defaultFS`指向错误的HDFS地址[^1] 2. **权限问题** - Hadoop用户对日志目录(如`/tmp/hadoop-yarn`)或HDFS目录缺乏写入权限 - SSH免密登录未配置,导致节点间通信失败[^1] 3. **安全漏洞触发异常** - 若存在未授权访问漏洞(如开放`8088`/`50070`端口未配置ACL),可能因恶意请求导致服务崩溃[^4] - 漏洞修复操作(如关闭端口)可能意外影响服务正常运行[^5] 4. **环境问题** - Java版本不兼容(如Hadoop 3.x需要Java 8+) - 系统防火墙阻止集群节点间通信 - 磁盘空间不足导致日志写入失败 --- #### 二、排查与解决方法 **步骤1:检查配置文件** 验证以下关键配置(文件路径:`$HADOOP_HOME/etc/hadoop/`): ```xml <!-- yarn-site.xml --> <property> <name>yarn.resourcemanager.hostname</name> <value>hadoop103</value> <!-- 需与实际主机名一致 --> </property> <property> <name>yarn.nodemanager.resource.memory-mb</name> <value>8192</value> <!-- 根据物理内存调整 --> </property> ``` **步骤2:查看日志定位错误** 通过日志文件快速定位问题: ```bash # ResourceManager日志路径 tail -n 100 $HADOOP_HOME/logs/yarn-hadoop-resourcemanager-*.log ``` 常见日志错误示例: - `BindException: Port in use` → 端口冲突 - `Permission denied` → 权限问题 - `Connection refused` → 网络通信故障 **步骤3:验证端口占用情况** ```bash netstat -tlnp | grep 8088 # 检查ResourceManager端口 lsof -i :8030 # 检查内部通信端口 ``` **步骤4:修复权限与网络** ```bash # 修复目录权限 chown -R hadoop:hadoop /tmp/hadoop-yarn # 配置SSH免密登录 ssh-keygen -t rsa ssh-copy-id hadoop@hadoop103 ``` **步骤5:安全加固(可选)** 若涉及漏洞修复: - 限制YARN Web UI端口(`8088`)的访问IP范围 - 启用Kerberos认证[^3] --- #### 三、典型场景案例 **案例1:端口冲突导致启动失败** **现象**:日志显示`java.net.BindException: Address already in use` **解决**: ```bash # 终止占用端口的进程 kill -9 $(lsof -t -i:8088) # 或修改ResourceManager端口 <property> <name>yarn.resourcemanager.webapp.address</name> <value>0.0.0.0:18088</value> </property> ``` **案例2:内存配置错误** **现象**:日志中出现`Container killed by YARN for exceeding memory limits` **解决**: 调整`yarn-site.xml`中的内存参数: ```xml <property> <name>yarn.scheduler.maximum-allocation-mb</name> <value>16384</value> <!-- 不超过物理内存的80% --> </property> ``` ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值