HBase RegionServer Pause for hours 卡顿几小时 故障
关键词:hbase jvm gc regionserver wal pause
背景:
HBase 1.1.2
客户的hbase集群最近出现RegionServer宕机情况。跟踪了master和RS日志发现,RS端抛出在做wal flush的时候,找不到 /apps/hbase/data/WALs/host,16020,timestamp 这个目录,由Parent directory doesn't exist 导致了 cannot get log writer,从而 RS abort。
master日志发现,找不到的那个log文件在上午11点的时候 被archive到oldWALs里,而且注意rs的wal目录带有splitting后缀。
-- ::, INFO [main-EventThread] wal.WALSplitter: Archived processed log hdfs://wgzx/apps/hbase/data/WALs/hdp034.wgzx,16020,1494436736930-splitting/hdp034.wgzx%2C16020%2C1494436736930.default.1497667888987 to hdfs://wgzx/apps/hbase/data/oldWALs/hdp034.wgzx%2C16020%2C1494436736930.default.1497667888987
-- ::, DEBUG [hdp013.wgzx,,1494436739211_ChoreService_1] master.ReplicationLogCleaner: Didnt find this log in ZK, deleting: hdp034.wgzx%2C16020%2C1494436736930.default.
rs日志发现11点到16点中间没有日志,卡在了jvm pause,16点后开始flush11点被master delete的日志,宕机。
分析:
基本可以确定RegionServer就是不知为何卡住(不能确定是full gc),被stop-the-world了,然后master得不到RS的响应,以为它挂了,于是开始rename其WAL directory,做log split。(splitting后缀表示log split,表示master认为rs挂了) 然后rs起来打算继续11点时pause的工作,结果wal目录都没了,宕机。
卡顿几小时,而且printGCDetails的正常的gc日志也没打出来,让我们十分怀疑是不是真的是因为gc引起的,因为20g堆内+20g堆外也不算很大,就算gc性能再低,也不至于卡几小时。咨询了几位外部专家,表示都怀疑可能是遇到系统内核或jvm的bug了。但/var/log/message下异常当天没发现异常日志。
系统内核在CentOS 6.6 有个内核版本的bug,会导致进程卡死 : https://groups.google.com/forum/#!topic/mechanical-sympathy/QbmpZxp6C64 。但我们的是 Cent 6.7,在列表里明确表示是解决了这个bug的。
目前暂无法得知原因,而且在这个集群的HBase貌似是会偶尔出现这种情况,不止一台机器。我们内部集群HBase配置基本一样,反而没遇到过这类问题。
后续更新:
后来运维自己发现自己由于年初某一次故障,写了个定时去对regionServer做jmap的脚本(而且间隔时间据说只有分钟级)。把这个脚本去掉后貌似持续了半个多月再也没发生过问题。。。虽然jmap会触发fullGC,但是讲道理也不应该出现卡这么久,不知道是不是人为触发STW太频繁导致JVM产生了什么bug。
HBase RegionServer Pause for hours 卡顿几小时 故障的更多相关文章
- 解决由于显卡驱动BUG导致桌面右键卡顿的问题:bat文件源码
@ ECHO OFF%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe&q ...
- 一次spark卡顿分析
在104上面执行,经常会发生卡到了如下一句话: storage.BlockManagerInfo: Added broadcast_8_piece0 当再次卡顿的时候,我直接退出,然后通过yarn看后 ...
- 使用WaveOut API播放WAV音频文件(解决卡顿)
虽然waveout已经过时,但是其api简单,有些时候也还是需要用到. 其实还是自己上msdn查阅相应api最靠谱,waveout也有提供暂停.设置音量等接口的,这里给个链接,需要的可以自己查找: h ...
- xamarin MasterDetailPage点击Master时卡顿现象
在很多项目中经常会使用到MasterDetailPage的布局方式,而且一般做为主页面来开发,在开发中,发现一个并不算Bug的问题,但是却发生了,以此记录下来,方便大家探讨. 现象是这样的,我开发了一 ...
- UITableView cell复用出错问题 页面滑动卡顿问题 & 各杂七杂八问题
UITableView 的cell 复用机制节省了内存,但是有时对于多变的自定义cell,重用时会出现界面出错(例如复用出错,出现cell混乱重影).滑动卡顿等问题,这里只简单敲下几点复用出错时的解决 ...
- 解决UINavigationController在pushViewController时出现的"卡顿"问题
进行开发中,遇到了个小问题: 在使用UINavigationController的-pushViewController:animated:执行入栈一个子控制器操作时(即最新栈顶子控制器),会出现推出 ...
- webstorm卡顿问题
近期随着项目开展,文件逐渐增大,webstrom频繁出现卡顿,而且时有崩溃现象,提示没有足够的内存来执行请求的操作,需要增加Xms设置. 解决办法: 1.找到WebStorm.exe.vmoption ...
- CSS3 速移动效果动画流畅无卡顿
js或jquery 元素移动以像素计算,手机上移动效果会有卡顿 利用CSS3 可以很简单的实现流畅的移动动画 transform: translate3d(66px, 88px, 0px) rotat ...
- 第3月30天 UIImage imageWithContentsOfFile卡顿 Can't add self as subview MPMoviePlayerControlle rcrash
1. UIImage imageWithContentsOfFile卡顿 [[UIImage alloc] initWithContentsOfFile 卡顿 2.uitableview scroll ...
随机推荐
- PYTHON使用入门
一 写在开头1.1 本文内容PYTHON语言的基础知识. 二 Q & A2.1 为什么选择PYTHON?软件质量:在很大程度上,PYTHON更注重可读性.一致性和软件质量,从而与脚本语言世界中 ...
- 第七节:Trigger(SimpleTrigger、CronTrigger)哑火(MisFire)策略 :
一. 简介 1. 什么是哑火 由于某些原因导致触发器(trigger)在该触发的时候没有得到触发,后续对应的解决策略即为哑火策略.(个人理解) 2. 哑火触发的条件 ①:所有的工作线程都在忙碌,导致某 ...
- [物理学与PDEs]第1章第7节 媒质中的 Maxwell 方程组 7.2 媒质交界面上的条件
通过 Maxwell 方程组的积分形式易在交界面上各量应满足交界面条件: $$\beex \bea \sez{{\bf D}}\cdot{\bf n}=\omega_f,&\sex{\omeg ...
- MySQL学习3 - 数据表的操作
本节掌握 一.存储引擎(了解) 二.mysql支持的存储引擎 1.InnoDB 存储引擎 2.MyISAM 存储引擎 3.NDB 存储引擎 4.Memory 存储引擎 5.Infobright 存储引 ...
- Ubuntu 18.04 LTS搭建GO语言开发环境
一.下载Go语言安装包 官网下载地址:https://golang.org/dl/,使用tar命令将档案包解压到/usr/local目录中: sudo tar -C /usr/local -xzf g ...
- 弄懂promise
ECMAscript 6 原生提供了 Promise 对象. Promise 对象代表了未来将要发生的事件,用来传递异步操作的消息 有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来 ...
- 简单使用Markdown
Markdown是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式. 相比WYSIWYG编辑器 优点: 1.因为是纯文本,所以只要支持Markdown的地方都能获得一样 ...
- 使用ob缓存实现真静态
实现页面的真静态化可以通过php的ob缓存来实现: 1.ob缓存认识 Ob就是output_buffering:输出缓存. 如果ob(函数ob_start())缓存打开,则echo的数据首先放在ob缓 ...
- git提交忽略某些文件或文件夹
记得第一次用 github 提交代码,node_modules 目录死活传不上去,哈哈哈,后来才知道在 .gitignore 文件里设置了忽略 node_modules 目录上传.是的, .gitig ...
- Excel VBA入门(8): 代码调试/错误处理/代码优化
VBE有丰富的调试工具, 比如立即窗口, 本地窗口, 监视窗口, 断点调试... 第一个博文中已经讲过调试的基本操作: 设置断点, F5运行, F8逐条运行 断点就是程序中暂停停止运行的位置, 设置断 ...