HA场景下主NameNode启动失败

本文涉及的产品
云原生网关 MSE Higress,422元/月
注册配置 MSE Nacos/ZooKeeper,118元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
简介: HA场景下主NameNode启动失败

问题描述

节点扩容后重启HA模式的EMR集群发现HDFS启动失败。


问题排查

1.查看集群的状态发现yarn、zookeeper异常,打印如下:

yarn worker1 :No space left on device: '/usr/local/ecm-agent/log/tasks/29061358

zookeeper worker1 : No space left on device: '/usr/local/ecm-agent/log/tasks/29061567/'


此时需要登录到worker1节点,执行 df -h 检查下磁盘的使用情况。

从其他worker节点连接worker-1节点无法连接,一直在报 No space left on device。说明worker-1节点的空间确实不足。此时建议优先节点磁盘扩容。

待节点扩容后,此时worker-1节点可以正常,但是发现yarn、zookeeper组件还是异常。这是因为依赖的HDFS服务组件异常。


2.针对HDFS服务异常发现是主NN实例启动失败导致的,看NameNode的out日志打印如下:

Invalid maximum heap size: -XmxHADOOP_NAMENODE_HEAPSIZEm Error: Could not create the Java Virtual Machine.


此时可以初步确认造成HDFS异常的原因就是主NameNode实例的hadoop环境变量被修改过导致的。

1)检查了异常header节点和正常header节点的java版本是一致的;

2)对比了正常节点和异常节点 /etc/ecm/hadoop-conf/hadoop-env 文件,发现配置参数是一致的

3)此时在header-2节点上执行 su -l hdfs -c "HADOOP_HEAPSIZE=HADOOP_NAMENODE_HEAPSIZE /usr/lib/hadoop-current/sbin/hadoop-daemon.sh start namenode" 操作发现报错还是Invalid maximum heap size: -XmxHADOOP_NAMENODE_HEAPSIZEm Error: Could not create the Java Virtual Machine.

此时就可以说明造成HDFS异常的原因就是主NameNode实例的hadoop环境变量有被人为修改过导致的。

4)在异常header-2节点上执行echo $HADOOP_NAMENODE_HEAPSIZE 发现环境变量为空,而正常场景下应该是有值的。

5)此时建议在header-2节点上执行 export HADOOP_NAMENODE_HEAPSIZE=8192 操作手动将值配置上,重新运行su -l hdfs -c操作发现还是一样的异常报错。

6)针对配置的环境变量执行env | grep HADOOP_CONF 操作,发现header-2节点上HADOOP_CONF_DIR配置的路径与正常header-1节点不一致,是一个自定义路径。

此时手动修改异常节点的HADOOP_CONF_DIR配置为 /etc/ecm/hadoop-conf后,重启主NameNode实例成功,HDFS服务恢复正常,且依赖的yarn、zookeeper服务也恢复正常。


解决方案

环境变量配置被认为修改,手动修改HADOOP_CONF_DIR=/etc/ecm/hadoop-conf 后问题解决。


适用于

E-MapReduce


相关实践学习
基于MSE实现微服务的全链路灰度
通过本场景的实验操作,您将了解并实现在线业务的微服务全链路灰度能力。
相关文章
Hadoop 集群启动后,从节点的NodeManager没有启动解决
1.slaves节点报错,报的是启动nodemanager 所需内存不足 解决: a: 修改 yarn-site.
5294 0
|
8月前
|
NameNode 故障无法重新启动解决方法
当NameNode进程挂掉时,若无数据丢失,可直接使用`hdfs --daemon start namenode`重启。但若数据丢失,需从SecondaryNameNode恢复。首先查看启动日志,确认因数据丢失导致的未启动成功问题。接着,将SecondaryNameNode的备份数据拷贝至NameNode的数据存储目录,目录路径在`core-site.xml`中设定。进入NameNode节点,使用`scp`命令从SecondaryNameNode复制数据后,重启NameNode进程,故障即可修复。
950 0
ResourceManager HA 配置
陆续的把Hadoop集群部署、HDFS的HA配置完成,把ResourceManager的HA配置好之后,Hadoop集群配置也算是完整了,可以满足小型中型生产环境Hadoop集群搭建的需要。如果真要搭建超大型的Hadoop集群,这些只能算是参考,还需要修改很多其他参数,使性能更好一些。
1090 0
ResourceManager HA 配置
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等