线上和开发集群都遇到过master abort的情况,而且错误都是Unexpected state导致的FATAL错误

2014-01-08 13:44:40,770 FATAL org.apache.hadoop.hbase.master.HMaster: Master server abort: loaded coprocessors are: []

2014-01-08 13:44:40,771 FATAL org.apache.hadoop.hbase.master.HMaster: 69 Unexpected state : usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=PENDING_OPEN, ts=1389159880770, server=localhost.localdomain,60020,1389159296923 .. Cannot transit it to OFFLINE.

java.lang.IllegalStateException: 69 Unexpected state : usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=PENDING_OPEN, ts=1389159880770, server=localhost.localdomain,60020,1389159296923 .. Cannot transit it to OFFLINE.

在本地测试可以复现了这种情况,创建一个表,设置压缩算法,但是压缩算法本地不支持,这样master abort很容易复现。

create 'usertable2', { NAME=>'cf', VERSIONS=> 1, COMPRESSION => 'LZO', BLOCKCACHE => true}, { SPLITS => ['user']}

我们来看下HRegionServer的日志:

RegionServer:

2014-01-08 13:44:40,661 DEBUG org.apache.hadoop.hbase.zookeeper.ZKAssign: regionserver:60020-0x1437058a1d60001 Successfully transitioned node a37e60fd78a3bff2bddac6270f6b317c from M_ZK_REGION_OFFLINE to RS_ZK_REGION_OPENING

2014-01-08 13:44:40,669 DEBUG org.apache.hadoop.hbase.zookeeper.ZKAssign: regionserver:600

接着我们来看HMaster的日志:

Master:

2014-01-08 13:44:40,671 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 28 Handling transition=RS_ZK_REGION_FAILED_OPEN, server=localhost.localdomain,60020,1389159296923, region=a37e60fd78a3bff2bddac6270f6b317c

2014-01-08 13:44:40,679 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 28 Handling transition=RS_ZK_REGION_FAILED_OPEN, server=localhost.localdomain,60020,1389159296923, region=a37e60fd78a3bff2bddac6270f6b317c

RegionServer产生了两个zk事件,一个是RS_ZK_REGION_OPENING,一个是RS_ZK_REGION_FAILED_OPEN。而Master处理这两个事件的时间比较晚,所以读取到的数据都是RS_ZK_REGION_FAILED_OPEN,导致执行两次ClosedRegionHandler。

这两个ClosedRegionHandler同时执行,有一定的概率导致Unexpected state,进而master abort,看下面master的日志。

2014-01-08 13:44:40,677 DEBUG org.apache.hadoop.hbase.master.handler.ClosedRegionHandler: 68 Handling CLOSED event for a37e60fd78a3bff2bddac6270f6b317c

2014-01-08 13:44:40,677 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 68 Forcing OFFLINE; was=usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=CLOSED, ts=1389159880663, server=localhost.localdomain,60020,1389159296923

2014-01-08 13:44:40,677 DEBUG org.apache.hadoop.hbase.zookeeper.ZKAssign: master:60000-0x1437058a1d60005 Creating (or updating) unassigned node for a37e60fd78a3bff2bddac6270f6b317c with OFFLINE state

2014-01-08 13:44:40,683 DEBUG org.apache.hadoop.hbase.master.handler.ClosedRegionHandler: 69 Handling CLOSED event for a37e60fd78a3bff2bddac6270f6b317c

2014-01-08 13:44:40,683 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 69 Forcing OFFLINE; was=usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=CLOSED, ts=1389159880663, server=localhost.localdomain,60020,1389159296923

2014-01-08 13:44:40,736 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 68 Found an existing plan for usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. destination server is localhost.localdomain,60020,1389159296923

2014-01-08 13:44:40,736 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 68 Using pre-existing plan for region usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c.; plan=hri=usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c., src=, dest=localhost.localdomain,60020,1389159296923

2014-01-08 13:44:40,736 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 68 Assigning region usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. to localhost.localdomain,60020,1389159296923

2014-01-08 13:44:40,762 DEBUG org.apache.hadoop.hbase.zookeeper.ZKAssign: master:60000-0x1437058a1d60005 Creating (or updating) unassigned node for eff0a14a56f0750278268d6bb49f35e0 with OFFLINE state

2014-01-08 13:44:40,770 DEBUG org.apache.hadoop.hbase.master.AssignmentManager: 68 update region usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. to PENDING_OPEN

2014-01-08 13:44:40,770 FATAL org.apache.hadoop.hbase.master.HMaster: Master server abort: loaded coprocessors are: []

2014-01-08 13:44:40,771 FATAL org.apache.hadoop.hbase.master.HMaster: 69 Unexpected state : usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=PENDING_OPEN, ts=1389159880770, server=localhost.localdomain,60020,1389159296923 .. Cannot transit it to OFFLINE.

java.lang.IllegalStateException: 69 Unexpected state : usertable2,,1389159324467.a37e60fd78a3bff2bddac6270f6b317c. state=PENDING_OPEN, ts=1389159880770, server=localhost.localdomain,60020,1389159296923 .. Cannot transit it to OFFLINE.

at org.apache.hadoop.hbase.master.AssignmentManager.setOfflineInZooKeeper(AssignmentManager.java:1896)

at org.apache.hadoop.hbase.master.AssignmentManager.assign(AssignmentManager.java:1700)

这里也就可以解释为什么master收到了同一个region的两个RS_ZK_REGION_FAILED_OPEN事件,不是zk导致的,而是时序导致的。

Unexpected state导致HMaster abort相关推荐

  1. 创建自己的盒子box_创建自己的

    创建自己的盒子box Note from author : 作者注: In this article we will learn how to create your own WhatsApp sti ...

  2. 一次region过多导致HBase服务宕机事件

    具体情况是,甲方有10个节点的HBase集群,主要业务表共10张,region总数达23000+,平均每台RegionServer(RS)的region数量2300左右,每台RS堆内存配置96G(初始 ...

  3. ARM Linux异常处理之data abort(一)

    本文简要分析了ARM Linux的data abort异常处理过程,内核版本2.6.28,s3c6410平台. 异常向量与程序跳转 data abort是ARM体系定义的异常之一.异常发生时,ARM会 ...

  4. hbase关于hmaster无法启动

    在安装部署hbase得时候遇到了一个问题hbase中得hmaster一直起不来,导致我得hbase没法启动.最后发现是我得conf中得hbase-site.xml里面得hdfs得路径填的有偏差. 不小 ...

  5. abort linux,ARM Linux异常处理之data abort

    1 异常向量与程序跳转data abort是ARM体系定义的异常之一.异常发生时,ARM会自动跳转到异常向量表中,通过向量表中的跳转命令跳转到相应的异常处理中去. ARM的异常处理向量表在entry- ...

  6. 记一次uboot 中出现的 data abort 错误

    最近调试 uboot 遇到一个很顽固的错误,遇到我是一脸懵啊,花了一天的时间去解决. fs_open() 100,p=45fb0a2d len=1436 H fs_open() 108 data ab ...

  7. [译]Vulkan教程(20)重建交换链

    [译]Vulkan教程(20)重建交换链 Swap chain recreation 重建交换链 Introduction 入门 The application we have now success ...

  8. android休眠唤醒驱动流程分析【转】

    转自:http://blog.csdn.net/hanmengaidudu/article/details/11777501 标准linux休眠过程: l        power managemen ...

  9. 《WCF技术内幕》翻译32:第2部分_第6章_通道:通道状态机(1)

    通道状态机 通道和通道工厂拥有相同的特性,这些特性独立于运行时功能.其中最重要的特性之一就是他们拥有公共的状态机.WCF程序里的每个通道和通道工厂都有一个预定义的状态集合和一个预定义的方法集合,这些方 ...

最新文章

  1. kset_create_and_add
  2. 三圆相交阴影部分面积_这题要证明圆的切线并求阴影面积,分割图形求面积法是解题关键...
  3. Redis实战(2)安装和试用
  4. 一大波数据来袭 网络桃色陷阱暗藏致命危机
  5. idea控制台输出乱码
  6. 闪灯什么意思_开车碰见别人闪灯知道是什么意思吗?看不懂不要说自己会开车哦...
  7. 做折线图坐标轴数字_你做的柱状图太丑了,这些美化技巧教给你(收藏)
  8. 二叉树两个结点的最低公共父结点 【微软面试100题 第七十五题】
  9. keepalived与lvs结合使用配置实例
  10. ASP.NET中XML数据的处理
  11. mysql 百亿级数据统计实现_如何实现上亿级数据的精准计数?
  12. Python爬取小姐姐美照
  13. IOS-升级102 全局监听SendEvent
  14. 字符串变量string
  15. stata质别变量赋值_【STATA学习笔记】虚拟变量的生成
  16. 手写C语言之函数概念-函数分类-实参与形参-传值调用与传址调用介绍(11)
  17. APICloud App开发上手经验分享之模块调用
  18. PyCharm 社区版(Community)能不能商用?
  19. 风控模型评估方法以及大数据风控模型概念
  20. Anaconda的安装

热门文章

  1. ubuntu-安装ROS Kinetic(推荐)
  2. 有没有u盘数据恢复软件免费版?u盘数据恢复软件哪个好?
  3. Java真心话大冒险,真心话大冒险源码
  4. 什么是计算机使用及安全管理制度,安全管理制度
  5. 华为手机计算机删了怎么办,如何从华为手机恢复丢失或删除的文件
  6. 解决Django报错:SQLITE 3.8.3 OR LATER IS REQUIRED
  7. python lambda 判断_Python lambda
  8. 大数据冲击下图书出版编辑转型策略探析(非原创)
  9. catti二级笔译综合能力真题_【CATTI二级笔译】综合能力知识点总结(一)
  10. 杰理ac18芯片_杰理科技推出:「梧桐」系列双模音视频 AIoT 芯片