namenode 问题小记
问题1:namenode进程故障
Namenode挂掉,Namenode gc日志里面YGC报错promotion failed
现象描述
NameNode进程挂掉,Namenode gc日志里面YGC报错promotion failed。
可能原因
Young gc的时候,需要复制eden区和from区内的对象到to区,如果此时to区满了,就会使用悲观策略复制到old区,而此时old区也满了,就会报promotion failed。
定位思路
- GC参数设置不合理
- 进程内存分配过少
处理方式
方式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。
- 修改namenode JVM内存参数,将内存由64GB改为90GB,并分发;
- 检查当前active namenode为nn2;
- 重启standby namenode (nn1),确定已修改的参数已生效;
- 通过命令“hdfs haadmin -failover nn2 nn1”将active namenode切换至nn1;
- 待nn1为active,确定日志正常,且正常提供服务后,重启nn2 namenode
- 确定nn2 UI页面及日志正常,及已修改的参数已生效。
可选优化方向
- 文件数量达到1.9亿,导致namenode元数据量过大,可合并小文件以减少namenode内存使用,避免Full GC。
- 在core-site.xml文件中修改ha.health-monitor.rpc-timeout.ms参数值,来扩大zkfc监控检查超时时间。
namenode 问题小记的更多相关文章
- [原]Paste.deploy 与 WSGI, keystone 小记
Paste.deploy 与 WSGI, keystone 小记 名词解释: Paste.deploy 是一个WSGI工具包,用于更方便的管理WSGI应用, 可以通过配置文件,将WSGI应用加载起来. ...
- MySql 小记
MySql 简单 小记 以备查看 1.sql概述 1.什么是sql? 2.sql发展过程? 3.sql标准与方言的关系? 4.常用数据库? 5.MySql数据库安装? 2.关键概念 表结构----- ...
- 一键启动NameNode和DataNode--shell脚本
使用shell脚本,一键启动hadoop中的NameNode和DataNode.分为普通版和装逼版.装逼版较普通版多了很多判断和信息提示,当然主要还是为了我联系shell脚本而写的. 如果想实现复用, ...
- Git小记
Git简~介 Git是一个分布式版本控制系统,其他的版本控制系统我只用过SVN,但用的时间不长.大家都知道,分布式的好处多多,而且分布式已经包含了集中式的几乎所有功能.Linus创造Git的传奇经历就 ...
- Hadoop 2.6.0 Namenode HA,ResourceManager HA
先启动所有的zookeeper zkServer.sh start 在所有节点上启动JournalNode: sbin/hadoop-daemon.sh start journalnode 格式化第一 ...
- 广州PostgreSQL用户会技术交流会小记 2015-9-19
广州PostgreSQL用户会技术交流会小记 2015-9-19 今天去了广州PostgreSQL用户会组织的技术交流会 分别有两个session 第一个讲师介绍了他公司使用PostgreSQL-X2 ...
- HDFS NameNode 设计实现解析
接前文 分布式存储-HDFS 架构解析,我们总体分析了 HDFS 架构的主要构成组件包括:NameNode.DataNode 和 Client.本文首先进一步解析 HDFS NameNode 的设计和 ...
- 东哥读书小记 之 《MacTalk人生元编程》
一直以来的自我感觉:自己是个记性偏弱的人.反正从小读书就喜欢做笔记(可自己的字写得巨丑无比,尼玛不科学呀),抄书这事儿真的就常发生俺的身上. 因为那时经常要背诵课文之类,反正为了怕自己忘记, ...
- Hadoop NameNode的ZKFC机制
博客原文:hackershell 之前在准备中级课程PPT,整理了下HA的基本内容,并且感谢松哥为我们提供了HA不会切的问题,以至于之后刚好出现的NameNode宕机,能够快速解决. NameNode ...
随机推荐
- redis配置密码认证,通过密码可以进行连接
需求说明: 今天配置了一台redis服务器,想要也和其他的数据库一样配置用户名/密码的方式进行登录. 查找了一下,没看到配置用户名的地方,就是有认证密码,所以就做了测试,在此进行记录. 操作过程: 1 ...
- NHibernate初学二之简单执行SQL及HQL、Linq
上篇文章简单介绍NHibernate之简单增删改查,本文将会简单介绍有关执行NHibernate的SQL.HQL及存储过程: 一:执行SQL语句实例,运用CreateSQLQuery方法 public ...
- Java精选笔记_Java入门
Java概述 什么是Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言 JavaSE标准版 是为开发普通桌面和商务应用程序提供的解决方案 JavaEE企业版 是为开发企业级应用程序提供的解 ...
- Effective C++ Item 34 Differentiate between inheritance of interface and inheritance of implementation
1. 成员函数的接口总是被继承. 如 Item32 所说, public 意味着 is-a, 所以对 base class 为真的任何事情对 derived class 也为真 2. 声明一个 pur ...
- swif开发之--协议的使用
以前在oc构建的项目中,如果这个页面需要构建一些指定的页面,一般我会重新创建个集成与UIView的类,然后同时创建XXX.xib文件,然后直接在上面拖拽控件,非常快速,当然也可以手动布局!个人更喜欢可 ...
- 【RF库Collections测试】Dictionary Should Contain Value
Name:Dictionary Should Contain ValueSource:Collections <test library>Arguments:[ dictionary | ...
- Runtime 应用(一)拦截系统自带的方法交换实现
动态的交换方法能够给项目中大量已经使用的方法 进行拦截增加操作 实践:利用运行时交换系统的ImageNamed:方法 应用背景 当系统需要适配ios7和ios8时可能会有显示不同图片的需求,但在老项目 ...
- Swift-属性、方法、下标
存储属性和计算属性 类.结构和枚举都能够定义存储属性和计算属性.其中存储属性就是常见的形式,又分为变量属性和常量属性,如: struct Point { var x = 0.0, y = 0.0 } ...
- 网页头部的声明应该是用 lang="";
我们经常需要用缩写的代码来表示一种语言,比如用en表示英语,用de表示德语.ISO 639就是规定语种代码的国际标准.最早的时候,ISO 639规定的代码是,用两个拉丁字母表示一种语言,这被称为ISO ...
- ios 监听设备旋转方向
-(void)didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation { if(fromI ...