问题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. 删除C盘垃圾文件bat

    @ECHO OFF@echo 此批处理由59互联(http://www.59.cn)整理发布@echo @echo 清理几个比较多垃圾文件的地方DEL /F /S /Q "C:\WINDOW ...

  2. win8安装msi出现提示2503 2502的错误代码

    安装TortoiseSVN-1.9.5.27581-x64-svn-1.9.5.msi时出现错误,网上查看原因是权限不够造成的 解决方法: 解决方法: 1.鼠标移到桌面左下角->右键(或者直接: ...

  3. mysql在命令行中,指定要连接的数据库?

    需求描述: mysql客户端,可以在登录到mysql数据库时,指定要连接到哪个数据库 这里进行一个测试. 测试过程: 1.mysql通过-D参数指定连接到test数据库 [mysql@redhat6 ...

  4. tiny4412 ubuntudesktop更新源(old)

    1.报错:404  Not Found [IP: 91.189.88.151 80] 2. deb http://old-releases.ubuntu.com/ubuntu/ raring main ...

  5. easyui------添加中文文件

    添加中文文件: 官网地址:http://www.jeasyui.net/download/去jquery-easyui官网下载的文件里面找到easyui-lang-zh_CN.js文件,添加入代码里面 ...

  6. 使用rlwrap调用sqlplus中历史命令

    此文来自http://www.cnblogs.com/mchina/archive/2013/03/08/2934473.html 在此谢谢原创作者. 在Linux中运行SQL*Plus,不能调用历史 ...

  7. Effective C++ —— 资源管理(三)

    条款13 : 以对象管理资源 假设有如下代码: Investment* createInvestment(); //返回指针,指向Investment继承体系内的动态分配对象,调用者有责任删除它 vo ...

  8. 【顽固BUG】Visual Studio 2015 + TestDriven.NET-3.8.2860_Personal_Beta 调用的目标发生了异常。

    前言 突然怎么弄也无法断点调试了 输出如下: ------ Test started: Assembly: Server5.V2.dll ------ 调用的目标发生了异常. 而且网站运行提示: -- ...

  9. 【Spring Boot && Spring Cloud系列】构建Springboot项目 实现restful风格接口

    项目代码如下: package hello; import org.springframework.boot.SpringApplication; import org.springframework ...

  10. Dockerfile分享之SSH Server

    版权声明:本文由姚俊刚原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/84 来源:腾云阁 https://www.qclou ...