EMR namenode无法启动

简介: EMR namenode无法启动

问题描述

EMR集群的HDFS HA不可用,停掉header1 NameNode,header2无法变成active,导致两个header都处于down。


分析过程

1. 使用topfree -h等命令查看主机内存使用情况,发现内存使用正常。HDFS进程占有率较高,达到6.7%。

2. 查看HDFS、NameNode GC日志。从HDFS日志看到有报错:java.lang.OutOfMemoryError: Java heap space,并且异常前频繁Full GC,并伴随concurrent mode failure(并发失败)的错误。

3. 初步判断由于NameNode在垃圾回收时频繁concurrent mode failure 退化为Full GC,最终垃圾回收速度小于垃圾产生速度最终触发OOM,而原因往往和GC参数、堆内存、业务频繁读写HDFS相关

4. 调整参数  XX:CMSInitiatingOccupancyFraction  为60,调大堆内存到8G后启动NameNode成功,服务恢复。


方案结论

1. NameNode JVM参数可在hadoop-env下  hadoop_namenode_opts  配置项查看

列举部分参数:

  • -Xms4096m:启动时堆内存大小,4G
  • -Xmx8192m:运行过程中分配的最大内存,8G
  • -XX:ParallelGCThreads=8:垃圾回收线程并行度
  • -XX:+UseConcMarkSweepGC :使用CMS垃圾回收器
  • -XX:CMSInitiatingOccupancyFraction=60:当老年代堆内存达到60%时开始进行CMS GC

2. 调整参数的意义

① -Xms

NameNode存储元数据(文件名、创建时间、大小、权限、文件与block块映射关系) ,随着用户集群业务的增大,如果NameNode无法启动请适当调大启动堆内存大小,避免出现NameNode启动读取fsimage镜像文件时间过长或者初始堆内存不够大导致启动失败。

② -XX:CMSInitiatingOccupancyFraction

NameNode启动后,若频繁Full GC,可以考虑调小CMSInitiatingOccupancyFraction的值,即更早的进行CMS GC。另外由于CMS是一款并发垃圾回收器,即用户线程和GC线程在并发标记、并发清理阶段是同时进行,所以需要预留内存空间给用户线程使用,否则容易出现concurrent mode failure导致full gc。如果要解决concurrent mode failure的问题,通常会从三个方面考虑:

  1. 适当调大堆内存空间-Xmx
  2. 适当调低CMSInitiatingOccupancyFraction的值(不建议调整的过小,容易导致更频繁的CMS GC)
  3. 控制对象创建频率(一般用户自己的application可以通过此方面入手进行优化,这里由于是系统进程,最多控制业务层面的读写操作,不适用)


适用范围

开源大数据平台E-MapReduce

相关文章
|
3月前
|
Web App开发 安全 API
喂饭级教学:OpenClaw云服务器及本地部署,配置浏览器skill,安全高效实现网页自动化
OpenClaw作为2026年主流的开源AI智能体工具,核心优势在于具备跨平台运行与自动化任务执行能力,而网页操作是其高频应用场景之一。但多数用户在使用浏览器相关功能时,常面临需安装复杂插件、API调用成本高、个人浏览器数据安全风险等问题。
4986 2
|
4月前
|
前端开发 算法
深度研究Agent架构解析:4种Agent架构介绍及实用Prompt模板
本文系统梳理了深度搜索Agent的主流架构演进:从基础的Planner-Only,到引入评估反馈的双模块设计,再到支持层次化分解的递归式ROMA方案。重点解析了问题拆解与终止判断两大核心挑战,并提供了实用的Prompt模板与优化策略,为构建高效搜索Agent提供清晰路径。
1772 10
深度研究Agent架构解析:4种Agent架构介绍及实用Prompt模板
|
存储 机器学习/深度学习 分布式计算
HDFS Federation简介
背景 熟悉大数据的人应该都知道,HDFS 是一个分布式文件系统,它是基于谷歌的 GFS 思路实现的开源系统,它的设计目的就是提供一个高度容错性和高吞吐量的海量数据存储解决方案。在经典的 HDFS 架构中有2个 NameNode 和多个 DataNode 的,如下: 从上面可以看出 HDFS 的架构其实大致可以分为两层: Namespace:由目录,文件和数据块组成,支持常见的文件系统操作,例如创建,删除,修改和列出文件和目录。
|
7月前
|
存储 JSON 人工智能
StarRocks 4.0:Real-Time Intelligence on Lakehouse
全面解析 4.0 的核心特性,文末还有 1024 特别福利等你来领 🎁
|
7月前
|
存储 SQL 消息中间件
从 ClickHouse 到 StarRocks 存算分离: 携程 UBT 架构升级实践
查询性能实现从秒级到毫秒级的跨越式提升
|
7月前
|
人工智能 算法 架构师
AI时代程序员的生存与突围从需求分析开始
AI能3秒生成代码框架,还要程序员干什么?
1251 9
|
7月前
|
人工智能 弹性计算 运维
AI驱动下的云平台运维效率变革,让系统更聪明,让人更专注!
随着AI时代的到来,如何上好云、用好云、管好云是政企客户面临的共同话题,而云平台已成为支撑其业务运行的核心基础设施。分布式、多Region、声明式、异构等技术的广泛应用,带来了架构灵活性和部署效率的提升,但也让运维工作变得前所未有的复杂。
941 5
|
7月前
|
存储 数据库 索引
RAG检索质量差?这5种分块策略帮你解决70%的问题
RAG效果关键在于文档分块:固定、递归、语义、结构化与延迟分块各有优劣。合理选择能显著提升检索质量,减少幻觉,增强上下文理解,是构建高效RAG系统的核心环节。
908 4
|
分布式计算 Hadoop 分布式数据库
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
Hadoop生态系统介绍(二)大数据技术Hadoop入门理论系列之一----hadoop生态圈介绍
993 2