HA场景下主NameNode启动失败

简介: 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


相关文章
|
人工智能 监控 安全
使用 Ollama + FastAPI 打造轻量级 AI 应用部署方案
本文介绍了一套基于 Ollama 和 FastAPI 的轻量级 AI 模型部署方案,解决云端部署成本高、本地部署复杂的问题。通过 200 行核心代码实现模型加载到 API 服务的全流程,适用于中小型应用。方案结合 Ollama 的本地化运行能力和 FastAPI 的高性能特性,支持模型量化、并发控制和资源监控,提供 Docker 容器化及 K8s 扩展配置,优化性能与安全性。开发者可在 2 小时内完成环境搭建与部署,满足日均百万级请求需求,为 AI 应用快速落地提供有效支持。
1338 0
|
NoSQL 安全 Redis
Redis6.0新特性——ACL(权限控制列表)实现限制用户可执行命令和KEY
Redis6.0新特性——ACL(权限控制列表)实现限制用户可执行命令和KEY
1045 0
|
人工智能 Cloud Native API
Forrester Wave:阿里云公有云产品及战略能力全球第二
阿里云被评为Forrester 公有云平台Wave评估领导者,是唯一一家入选领导者象限的中国厂商,其中阿里云在共30个打分项中有17项为最高分。
|
运维 自然语言处理 供应链
Java云HIS医院管理系统源码 病案管理、医保业务、门诊、住院、电子病历编辑器
通过门诊的申请,或者直接住院登记,通过”护士工作站“分配患者,完成后,进入医生患者列表,医生对应开具”长期医嘱“和”临时医嘱“,并在电子病历中,记录病情。病人出院时,停止长期医嘱,开具出院医嘱。进入出院审核,审核医嘱与住院通过后,病人结清缴费,完成出院。
587 4
|
分布式计算 运维 调度
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
Spark——成功解决java.util.concurrent.TimeoutException: Futures timed out after [600 seconds]
11843 0
|
Java Docker 微服务
利用Docker容器化部署Spring Boot应用
利用Docker容器化部署Spring Boot应用
370 0
|
前端开发 JavaScript Linux
relectron框架——打包前端vue3、react为pc端exe可执行程序
relectron框架——打包前端vue3、react为pc端exe可执行程序
521 1
|
数据可视化 Docker 容器
Docker安装Rancher
Docker安装Rancher
673 2
|
人工智能 弹性计算 算法
|
分布式计算 Hadoop 关系型数据库
实时计算 Flink版操作报错合集之Hadoop在将文件写入HDFS时,无法在所有指定的数据节点上进行复制,该如何解决
在使用实时计算Flink版过程中,可能会遇到各种错误,了解这些错误的原因及解决方法对于高效排错至关重要。针对具体问题,查看Flink的日志是关键,它们通常会提供更详细的错误信息和堆栈跟踪,有助于定位问题。此外,Flink社区文档和官方论坛也是寻求帮助的好去处。以下是一些常见的操作报错及其可能的原因与解决策略。