1     文档编写目的

在安装5.11.2版本的CDH集群时,或者为5.11.2版本的CDH集群扩容时,可能会遇到YARN的NodeManager实例无法启动的问题。本文主要讲述NodeManager无法启动的原因以及如何解决该问题。

 

测试环境:

操作系统版本为Redhat7.2

CM和CDH版本为5.11.2

 

文章目录结构:

    1.  文档编写目的

    2.  问题描述

    3.  解决方案

    3.1 问题解决

    3.2 相关建议

    4.  总结


2     问题描述

在使用CDH5.11.2版本时,新增YARN的NodeManager角色,在启动角色实例时,出现如下异常:

CDH集群安装YARN无法正常启动及解决办法_hadoop                         

查看YARN的异常日志,异常信息如下:

7月 16, 晚上10点58:42.862分

Error starting NodeManager

org.apache.hadoop.service.ServiceStateException:  org.fusesource.leveldbjni.internal.NativeDB$DBException: IO error:  /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: Permission denied

     at  org.apache.hadoop.service.ServiceStateException.convert(ServiceStateException.java:59)

     at  org.apache.hadoop.service.AbstractService.init(AbstractService.java:172)

     at  org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartRecoveryStore(NodeManager.java:181)

     at  org.apache.hadoop.yarn.server.nodemanager.NodeManager.serviceInit(NodeManager.java:245)

     at  org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)

     at  org.apache.hadoop.yarn.server.nodemanager.NodeManager.initAndStartNodeManager(NodeManager.java:562)

     at  org.apache.hadoop.yarn.server.nodemanager.NodeManager.main(NodeManager.java:609)

Caused by: org.fusesource.leveldbjni.internal.NativeDB$DBException: IO  error: /var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: Permission  denied

     at  org.fusesource.leveldbjni.internal.NativeDB.checkStatus(NativeDB.java:200)

     at  org.fusesource.leveldbjni.internal.NativeDB.open(NativeDB.java:218)

     at  org.fusesource.leveldbjni.JniDBFactory.open(JniDBFactory.java:168)

     at  org.apache.hadoop.yarn.server.nodemanager.recovery.NMLeveldbStateStoreService.openDatabase(NMLeveldbStateStoreService.java:944)

     at  org.apache.hadoop.yarn.server.nodemanager.recovery.NMLeveldbStateStoreService.initStorage(NMLeveldbStateStoreService.java:931)

     at  org.apache.hadoop.yarn.server.nodemanager.recovery.NMStateStoreService.serviceInit(NMStateStoreService.java:204)

     at  org.apache.hadoop.service.AbstractService.init(AbstractService.java:163)

     ... 5 more

我在Redhat7.2操作系统上部署5.11.2版本的CDH集群以及为该版本集群扩容节点都遇到过该类问题,问题的解决方法比较简单,写这篇文章主要是想为以后规避此类问题提供一个参考。

 

3     解决方案

3.1  问题解决步骤

根据YARN的异常日志,可以看到提示的信息为“IO error:/var/lib/hadoop-yarn/yarn-nm-recovery/yarn-nm-state/LOCK: Permission denied”。需要登录NodeManager启动异常的节点排查问题。

 

1、登录bigdata29节点,查看/var/lib/hadoop-yarn/yarn-nm-recovery/目录,发现该目录为空


2、查看相关目录权限,发现hadoop-yarn目录权限为000,定位到问题


root@bigdata29:/var/lib/hadoop-yarn>ls  -lrt /var/lib/ | grep hadoop-ya

d---------. 3 root          root         4096 Jul 16 22:39  hadoop-yarn


CDH集群安装YARN无法正常启动及解决办法_java_02

3、更改hadoop-yarn目录权限为755

CDH集群安装YARN无法正常启动及解决办法_java_03

4、重启bigdata29的NodeManager角色实例,能够正常启动

CDH集群安装YARN无法正常启动及解决办法_hadoop_04


3.2  相关建议

在添加NodeManager之前,在相关节点上手动创建/var/lib/hadoop-yarn目录,可以避免出现该问题。如果节点数量太多,可通过批量执行命令脚本创建目录。

 

 

 

4     总结

在使用CDH5.11.2版本时,新增YARN的NodeManager角色,可能会出现/var/lib/hadoop-yarn/目录权限为000的问题,出现该问题时,需要将目录权限改为755,然后重启NodeManager。要避免该问题可以提前创建/var/lib/hadoop-yarn/

 

 

 

 

 

When your talent can’t support your ambition,You should calm down and learn.
When your ability cannot realize you dreams,
You should practice with all your heart.
Ask yourself,
What kind of life you pursue.