前言

本文隶属于专栏《大数据技术体系》,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢!

本专栏目录结构和参考文献请见大数据技术体系


正文

HBase 系统中主要有两类服务进程: Master 进程以及 RegionServer 进程。

Master 主要负责集群管理调度,在实际生产线上并没有非常大的压力,因此发生软件层面故障的概率非常低。

RegionServer 主要负责用户的读写服务,进程中包含很多缓存组件以及与 HDFS 交互的组件,实际生产线上往往会有非常大的压力,进而造成的软件层面故障会比较多。

下面,笔者总结了生产线上常见的一些可能导致 RegionServer 宕机的异常。


Full GC 异常

长时间的 Full GC 是导致 RegionServer 宕机的最主要原因,据不完全统计, 80 %以上的宕机原因都和 JVM Full GC 有关。

导致 JVM 发生 FullGC 的原因有很多:

  • HBase 对于 Java 堆内内存管理的不完善
  • HBase 未合理使用堆外内存
  • JVM 启动参数设置不合理
  • 业务写入或读取吞吐量太大
  • 写入读取字段太大等等。

其中部分原因要归结于 HBase 系统本身,另一部分原因和用户业务以及 HBase 相关配置有关。


HDFS 异常

RegionServer 写入读取数据都是直接操作 HDFS 的,如果 HDFS 发生异常会导致 RegionServer 直接宕机。


机器宕机

物理节点直接宕机也是导致 RegionServer 进程挂掉的一个重要原因。

通常情况下,物理机直接宕机的情况相对比较少,但虚拟云主机发生宕机的频率比较高。

很多公司会将 HBase 系统部署在虚拟云环境,因为种种原因发生机器宕机的情况相对就会多一些。

网络环境不稳定其实也可以归属于这类。


HBase Bug

生产线上因为 HBase 系统本身 bug 导致 RegionServer 宕机的情况很少,但在之前的版本中有一个问题让笔者印象深刻: RegionServer 经常会因为耗尽了机器的端口资源而自行宕机,这个 bug 的表现是,随着时间的推移,处于 close wait 状态的端口越来越多,当超过机器的配置端口数(65535)时 RegionServer 进程就会被 kill 掉。

这类问题建议多关注 HBase 的 JIRA 主页——HBase JIRA

哪些原因可能会导致 HBase 的 RegionServer 宕机?相关推荐

  1. HBase中RegionServer宕机恢复介绍

    HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘.为了防止数据写入缓存之后不会因为RegionServ ...

  2. HBase问题诊断 – RegionServer宕机

    本来静谧的晚上,吃着葡萄干看着球赛,何等惬意.可偏偏一条报警短信如闪电一般打破了夜晚的宁静,线上集群一台RS宕了!于是倏地从床上坐起来,看了看监控,瞬间惊呆了:单台机器的读写吞吐量竟然达到了5w op ...

  3. 【Hbase】RegionServer宕机数据恢复

    转载自 http://hbasefly.com/2016/03/23/hbase_writer/ 请多多支持原作者! HLog简介 为了更好的理解HBase故障恢复原理,需要对HLog有简单的认识.H ...

  4. HBase案例 | 20000个分区导致HBase集群宕机事故处理

    这是几个月前遇到的一次HBase集群宕机事件,今天重新整理下事故分析报告.概况的说是业务方的一个10节点HBase集群支撑百TB级别的数据量,集群region数量达 23000+,最终集群支持不住业务 ...

  5. HBase原理 | HBase RegionServer宕机数据恢复

    HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘.为了防止数据写入缓存之后不会因为RegionServ ...

  6. HBase原理-RegionServer宕机数据恢复

    1. 前言 HBase采用类LSM的架构体系,数据写入并没有直接写入数据文件,而是会先写入缓存(Memstore),在满足一定条件下缓存数据再会异步刷新到硬盘.为了防止数据写入缓存之后不会因为Regi ...

  7. HBase–RegionServer宕机恢复原理

    Region Server宕机总述 HBase一个很大的特色是扩展性极其友好,可以通过简单地加机器实现集群规模的线性扩展,而且机器的配置并不需要太好,通过大量廉价机器代替价格昂贵的高性能机器.但也正因 ...

  8. HBase RegionServer宕机恢复

    问题导读: 1.HBase的故障恢复有哪三种不同模式? 2.HBase日志切分方法? 3.Distributed Log Replay解决了哪些问题? HBase采用类LSM的架构体系,数据写入并没有 ...

  9. 网易视频云:HBase —— RegionServer宕机案件侦查

    网易视频云:HBase -- RegionServer宕机案件侦查 网易视频云  2016-04-21 11:45  阅读:92 摘要:网易视频云技术分享:HBase RegionServer宕机案件 ...

最新文章

  1. 简单的安卓app小程序代码_开发一款APP大概需要多少钱?
  2. 局域网抓包分析工具_[源码和文档分享]基于Libpcap实现的局域网嗅探抓包发包解析工具...
  3. Java 多线程:synchronized 关键字用法(修饰类,方法,静态方法,代码块)
  4. 【杂谈】来自一个懵懂青年的表白!
  5. 关于OPENSSL的使用
  6. Java如何连接mysql数据库详解(代码)
  7. 宠物次元经济专题分析2020
  8. jsp 页面刷新_如何应用XML+XSLT+AJAX组合技术实现无刷新数据查询
  9. 人间故事馆话题:聊聊那些被骗经历,让其他人不再被骗
  10. iOS上传图片和视频(base64和file)
  11. 如何不改表结构动态扩展字段?
  12. Geserver SLD 线标注注意事项
  13. 【Python】P2191 小Z的情书
  14. android技术篇(三)解密data区
  15. win10扬声器红叉_刚装了win10 小扬声器红叉没声音
  16. 华为手机桌面角标开发
  17. 网页不能自动播放视频、音频的解决方案
  18. verilog学习:一个简单的入门verilog例子
  19. 试题2-12:数据库设计与操作
  20. java unicode 转换_Java unicode中文编码转换和反转

热门文章

  1. 社区不等于营销 —— 为什么我们要社区化,而不仅是市场化?
  2. Centos6.5 FTP服务器安装
  3. js动态创建div等元素实例
  4. DEVc++小游戏集合(共9个)
  5. 用python自带的tkinter做游戏(二)—— 俄罗斯方块 篇
  6. 怎么用计算机计算not,计算机如何进行逻辑计算—(计算机基础课十四)
  7. 新零售企业如何借助全域数据中台进行自有用户洞察
  8. 高数_第3章重积__二重积分的2个结论
  9. SAP 销售范围分配定价过程
  10. wow工作室脚本_打击工作室的脚本排队行径,魔兽健康环境从我做起!