初学耗时:0.5h

注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

一、导致HBase挂掉的场景?


记忆词:

  ...


 R01 - 999、HBase、实时数据库


 ギ 舒适区ゾ || ♂ 累觉无爱 ♀

一、导致HBase挂掉的场景?

  • HMaster会出现异常(执行abort())停止的场景如下:
  1. zk异常导致的master停止服务是最常见的场景,涉及操作包含但不限于以下:
    a) Zk链接超时,超时时间通过zookeeper.session.timeout配置,默认为3分钟, 如果fail.fast.expired.active.master配置的值为false(默认为false),则不会立即abort,而是会尝试恢复zk的过期session;
    b) 在打开region后,需要从zk中删除opened节点,如果zk有该节点,但是删除失败;
    c) 在split region过程中,从zk删除split节点时;
    d) Master节点改变时;
    e) 从zk中创建unassigned节点时;
    f) 在下线disabled的regoin时,从zk中删除disabled的region如果发生zk异常;
    g) 还有很多操作zk的节点时如果出现异常。
  2. 在assign时,如果设置region为offlined状态,但是region之前的状态不是closed或者offlined;
  3. 在assign时,如果无法从.META.表中读取region信息;
  4. 把新的hbase集群加入到正在运行的hbase集群时,如果zk的/hbase/unassigned节点没有数据;
  5. 使用线程池批量分配region时,如果出现未被捕获的异常,实现方式如下:
  6. 在启动master的服务线程时,出现了异常;
  7. 在hdfs中检查hbase日志路径时,发现了dead的server时,需从hdfs中读出log,如果出现io异常需要检查hdfs文件系统,如果fsOk状态为true,但是通过FSUtils工具类进行检查时出现io异常;
  8. 在校验并且分配-ROOT-的region时,如果zk异常,或者其它异常(其它异常会重试10次),比如:“-ROOT- is onlined on the dead server”。

  • HRegionServer会出现异常停止(执行abort())服务的场景如下:
  1. 在读写hdfs时如果出现IOException异常,此时会发起hdfs的文件系统检查(checkFileSystem)
  2. Regionserver的服务线程出现了未捕获异常;
  3. 在启动HRegionServer时出现异常;
  4. 在进行HLog回滚时,出现异常;
  5. 在flush memstore时,如果持久化失败,会重启RS,在重启中把hlog的内容重新加载到memstore;
  6. 出现zk异常,包括但不限于以下场景:
    a) Zk链接超时,超时时间通过zookeeper.session.timeout配置,默认为3分钟,与master不同,如果zk操作不会重试;
    b) 启动HRegionServer时出现KeeperException异常;
    c) 在进行split操作时,如果出现异常会进行回滚操作,在回滚过程中需要从zk中删除region的spliting状态,如果删除时出现KeeperException或者回滚的其它操作出现异常;
    d) 在打开region时,出现了KeeperException异常;
    e) 在进行hbase集群复制时,很多与zk交互的操作出现KeeperException异常时均会导致abort;
  7. 在close region时,如果出现异常,比如:不能成功的flush memstore;
  8. Flush memstore时,如果HLog发现该region已经在flush则会强制终止JVM,采用的是Runtime.getRuntime().halt(1)方法,该方法不会执行正常退出的关闭钩子,从而不会flush RS的所有region,也不会迁移region,只有等待ZK的session超时后master才会发现该RS不可用,做迁移工作。

  • 总结:Hbase挂掉的可能性有很多,主要由zk或者hdfs的问题导致,因此zk、hdfs的可用对于hbase极其重要,关于zk:
  1. zk如果停止了服务则在很多时候会导致master、rs挂掉,hbase集群基本上就失去了服务的能力,因此zk一定要是稳定可靠的,当client已经于rs建立了链接,这时zk挂掉,如果不进行split等小数与zk交互失败会导致触发rs的abort()的操作时rs还是可以提供服务的;
  2. 如果rs/master进行了长时间的gc或者改动了服务器时间,导致出现zk的session超时会导致rs/master停止服务,目前已经出现了2次因为服务器时间变化导致hbase停止服务的事故;
  3. 别轻易人为改变zk的hbase节点数据,master/rs在进行很多操作时会比较依赖zk的数据,如果发现不符合预期可能会导致master/rs停止服务,尤其是master。
  • Master通过ZK知道RS是否可用,一般情况下RS在停止服务时均会正常退出,在正常退出时会从ZK中删除/hbase/rs/$regionserver的节点,Master会监听该节点的被删除,从而较快的(速度取决于所有region关闭时间)对该RS负责的region进行重新分配,如果是强制退出,比如 kill -9或者出现HRegionServer挂掉的第8条时则只有等待ZK的session超时时才会删除RS在ZK的节点(RS在ZK中添加节点时采用的是CreateMode.EPHEMERAL模式,该模式创建的节点会在session关闭时自动删除),那时Master才会进行重新assign。
  • Kill RS的进程也是正常退出(不能使用kill -9强制退出),RS使用Runtime的addShutdownHook方法注册了jvm关闭钩子,在关闭钩子中会执行RS的退出逻辑,实际上hbase-daemon.sh的停止RS就是采用kill。

天若有情天亦老,人间正道是沧桑。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

※ 世间诱惑何其多,坚定始终不动摇。

以下哪一项不属于网络时代企业面临的机遇?


A、降低交易成本
B、获取知识的能力增强
C、盈利能力增强
D、更好地满足顾客定制化需求

C

天若有情天亦老,人间正道是沧桑。

- - - - - - - - - - - - - - - - - - - - - - - - - - - -

注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端。

我知道我的不足,我也知道你的挑剔,但我就是我,不一样的烟火,谢谢你的指指点点,造就了我的点点滴滴:)!

天若有情天亦老,人间正道是沧桑。

R01 - 013、导致HBase挂掉的场景?相关推荐

  1. dfs.datanode.max.xcievers参数导致hbase集群报错

    2013/08/09 转发自http://bkeep.blog.163.com/blog/static/123414290201272644422987/ [案例]dfs.datanode.max.x ...

  2. zookeeper的maxSessionTimeout默认值导致hbase regionserver超时

    zookeeper的maxSessionTimeout默认值导致hbase regionserver超时 在hbase中经常会遇到regionserver挂掉的情况,查看日志会看到这样的错误信息 20 ...

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

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

  4. stm32h7b0替代h750程序导致单片机挂掉无法烧录程序问题

    h750是480M, h7b0是280M 如果直接用H750的程序,会导致单片机挂掉, 用jlink去读保护没作用, 用stlink连接不上 1 先用jlink去读保护 2 再下载最新的stm32h7 ...

  5. R01 - 005、HBase实时查询的原理

    初学耗时:0.5h 注:CSDN手机端暂不支持章节内链跳转,但外链可用,更好体验还请上电脑端. 一.HBase实时查询的原理 记忆词:   ...  R01 - 999.HBase.实时数据库  ギ ...

  6. HBase meta元数据损坏导致hbase master初始化失败

    故障起因: 跑kylin任务,过程出错,异常信息:Direct buffer memory, java.io.IOException: java.lang.OutOfMemoryError: Dire ...

  7. 哪些原因可能会导致 HBase 的 RegionServer 宕机?

    前言 本文隶属于专栏<大数据技术体系>,该专栏为笔者原创,引用请注明来源,不足和错误之处请在评论区帮忙指出,谢谢! 本专栏目录结构和参考文献请见大数据技术体系 正文 HBase 系统中主要 ...

  8. 再谈 HBase 八大应用场景

    1. HBase概述 HBase是一个分布式存储.数据库引擎,可以支持千万的QPS.PB级别的存储,这些都已经在生产环境验证,并且在广大的公司已经验证.特别是阿里.小米.京东.滴滴内部都有数千.上万台 ...

  9. Hbase的应用场景、原理及架构分析(转:https://blog.csdn.net/xiangxizhishi/article/details/75388971)

    Hbase概述 hbase是一个构建在HDFS上的分布式列存储系统.HBase是Apache Hadoop生态系统中的重要 一员,主要用于海量结构化数据存储.从逻辑上讲,HBase将数据按照表.行和列 ...

最新文章

  1. GEMM性能提升200倍,AutoKernel算子优化工具正式开源
  2. 清华学霸震撼演讲:“你可曾为学习拼尽全力?”
  3. 为SharePoint 2010创建Application Page
  4. ov5640帧率配置_一文看懂赛博朋克2077中低配置的设置方法和能畅玩的电脑有哪些?...
  5. 【ELK Stack】ELK+KafKa开发集群环境搭建
  6. vi / vim 字符替换详解
  7. jqurey datatables属性
  8. popup a new windows
  9. jdk11 javafx_JDK 11上的JavaFX
  10. 诗歌rails 之自定义Helper模块
  11. C++基础16-类和对象之联编,重写,虚析构
  12. 分布式事物框架TCC-Transaction使用教程
  13. 集成学习——NGBoost论文研读与原理理解
  14. stringstream的使用
  15. nginx ---- 静态资源部署
  16. [转]Kinect for Windows SDK开发入门(七):骨骼追踪基础 下
  17. 为什么年龄大了近视还增加_都是做近视手术,为什么价格区别这么大?
  18. mysql本地数据库地址_mysql数据库本地地址
  19. 高德地图自定义定位当前位置按钮
  20. win32gui操作

热门文章

  1. 计算机培训机构的宣传语,学校教学宣传口号
  2. VMWare安装苹果系统问题相关
  3. javaweb JAVA JSP图书销售系统JSP网上书店商城JSP购物系统JSP网上书店JSP图书在线销售系统JSP图书商城jsp二手图书销售系统
  4. rank over 、dense_rank over 、row_number over函数的使用区别
  5. 花钱买快乐 文 / 弗雷德里.美娜德
  6. o2o模式的未来在哪里?
  7. python精灵模块示例代码
  8. hr在java中是啥意思_职场中的HR是什么意思?
  9. 【翻译】和麻美学姐一起的世界树(マミさんと世界樹スレ)第五话
  10. 删除iPhone邮箱smtp服务器,教你iPhone邮件怎么添加删除附件及iPhone特殊代码分享...