问题1:namenode进程故障

Namenode挂掉,Namenode gc日志里面YGC报错promotion failed

现象描述

NameNode进程挂掉,Namenode gc日志里面YGC报错promotion failed。

可能原因

Young gc的时候,需要复制eden区和from区内的对象到to区,如果此时to区满了,就会使用悲观策略复制到old区,而此时old区也满了,就会报promotion failed。

定位思路

  1. GC参数设置不合理
  2. 进程内存分配过少

处理方式

方式1:
  1. 对于第三方管理的JVM,调低-XX:XXInitiatingOccupancyFraction值,降低触发NN XX GC的百分比,保证old区有足够内存。
方式2:

1.扩大NN内存。

问题2:NameNode内存FULL GC问题处理

生产集群namenode Full GC 告警频繁

问题描述:

将standby namenode(nn1)的内存扩至80GB后,切换namenode,standby namenode在转换为active状态时进程死掉,查看namenode和zkfc日志发现:

standby namenode由standby转换为active时,出现socket timeout,导致namenode状态转为SERVICE_NOT_RESPONDING,切换失败。

原因

bdp生产集群文件数量达到1.9亿,namenode当前内存64G,已使用约57G,内存不足,GC严重

处理

主机内存共128G,当前namenode内存为64GB,除namenode,resourcemanager,ZK,journalnode,ZKFC等进程已分配的内存外,剩余总内存约40G。

  1. 修改namenode JVM内存参数,将内存由64GB改为90GB,并分发;
  2. 检查当前active namenode为nn2;
  3. 重启standby namenode (nn1),确定已修改的参数已生效;
  4. 通过命令“hdfs haadmin -failover nn2 nn1”将active namenode切换至nn1;
  5. 待nn1为active,确定日志正常,且正常提供服务后,重启nn2 namenode
  6. 确定nn2 UI页面及日志正常,及已修改的参数已生效。

可选优化方向

  1. 文件数量达到1.9亿,导致namenode元数据量过大,可合并小文件以减少namenode内存使用,避免Full GC。
  2. 在core-site.xml文件中修改ha.health-monitor.rpc-timeout.ms参数值,来扩大zkfc监控检查超时时间。

namenode 问题小记的更多相关文章

  1. [原]Paste.deploy 与 WSGI, keystone 小记

    Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...

  2. MySql 小记

    MySql  简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...

  3. 一键启动NameNode和DataNode--shell脚本

    使用shell脚本,一键启动hadoop中的NameNode和DataNode.分为普通版和装逼版.装逼版较普通版多了很多判断和信息提示,当然主要还是为了我联系shell脚本而写的. 如果想实现复用, ...

  4. Git小记

    Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...

  5. Hadoop 2.6.0 Namenode HA,ResourceManager HA

    先启动所有的zookeeper zkServer.sh start 在所有节点上启动JournalNode: sbin/hadoop-daemon.sh start journalnode 格式化第一 ...

  6. 广州PostgreSQL用户会技术交流会小记 2015-9-19

    广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...

  7. HDFS NameNode 设计实现解析

    接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode.DataNode 和 Client.本文首先进一步解析 HDFS NameNode 的设计和 ...

  8. 东哥读书小记 之 《MacTalk人生元编程》

         一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...

  9. Hadoop NameNode的ZKFC机制

    博客原文:hackershell 之前在准备中级课程PPT,整理了下HA的基本内容,并且感谢松哥为我们提供了HA不会切的问题,以至于之后刚好出现的NameNode宕机,能够快速解决. NameNode ...

随机推荐

  1. 如何解决ChemDraw引起的系统崩溃

    运行ChemDraw应用程序时,一般不会引起系统崩溃,但在使用CS software产品可能会引发计算机崩溃.为了方便广大用户的使用,本教程将教授大家如何解决ChemDraw运行中引起的系统崩溃. 当 ...

  2. SVN目录权限配置

    1.如果要使用SVN,需要有一个项目的保存目录,例如把该目录设为“C:\MyPro”文件夹 2.把该目录发布为SVN项目目录,则需要通过以下命令行 svnadmin create c:\mypro  ...

  3. mysql中,如何查看数据库元数据(metadata)的字符集?

    需求描述: mysql中,数据库的元数据也是有字符集的. 操作过程: 1.查看mysql数据库元数据的字符集 mysql> show variables like 'character_set_ ...

  4. NHibernate连接oracle报错

    NHibernate.Exceptions.GenericADOException:“could not execute query [ select sys_user0_.USERID as USE ...

  5. Spring------SpringBoot中注解

    转载: http://www.tuicool.com/articles/bQnMra

  6. 工欲善其事 之 Web 前端调试工具格式化混淆过的 JS 代码

    工欲善其事 之 Web 前端调试工具格式化混淆过的 JS 代码 太阳火神的漂亮人生 (http://blog.csdn.net/opengl_es) 本文遵循"署名-非商业用途-保持一致&q ...

  7. Extjs学习笔记--(三,调试技巧)

    FireFox 1.firedebug(略) 2.illuminations 在illuminations页面可也看到缩写的extjs的代码,同时可以进行相应的调试 3,Firedebug AutoC ...

  8. GIS-004-Cesium版权信息隐藏

    .cesium-widget-credits { display: none; } .cesium-viewer .cesium-widget-credits { display: none; }

  9. GIS-003-在线地图下载及应用

    目前在线地图有谷歌.高德.百度.Bing.soso.天地图.OpenStreet.ArcGIS Online等.在企业应用中,一般需要物理网络隔绝,就有必要下载地图数据之后模拟发布,可以选择下载谷歌影 ...

  10. 查看内存使用情况:free

    free命令用于显示内存的使用情况,常见用法如下: [root@localhost ~]$ free # 以KB为单位显示内存使用情况 [root@localhost ~]$ free -m # 以M ...