`
bupt04406
  • 浏览: 348236 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Unexpected state导致HMaster abort

 
阅读更多

线上和开发集群都遇到过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导致的,而是时序导致的。

分享到:
评论
2 楼 bupt04406 2014-02-13  
dengkanghua 写道
出来这个问题该怎么解决?hbase master启动不起来。

打上这个patchhttps://issues.apache.org/jira/browse/HBASE-10257,或者升级到0.94.16这个版本。
1 楼 dengkanghua 2014-02-13  
出来这个问题该怎么解决?hbase master启动不起来。

相关推荐

    Could not perform operation -- unexpected exception. Unexpected failure (8000ff

    错误提示中的“Unexpected failure (8000ffff)”明确指出了一个非预期的失败情况,通常这类错误表明程序在执行过程中遇到了未被预料到的问题,导致程序无法正常继续执行。根据提供的信息,我们可以初步判断错误发生...

    错误:unexpected operator.docx

    「unexpected operator」错误通常是由于 Shell 解释器的不兼容性所导致的。在 Ubuntu 系统中,默认的 Shell 解释器是 dash,而不是 bash。dash 和 bash 之间存在着一定的不兼容性,导致一些 bash 的语法在 dash 中...

    VB dll(Unexpected error)

    在VB(Visual Basic)编程中,"Unexpected error"是一个常见的问题,这通常意味着在程序运行过程中遇到了未预见的异常情况,导致程序无法正常执行。这类错误可能是由于多种原因引起的,如代码逻辑错误、内存管理问题...

    java.lang.runtimeexception unexpected subelement

    5. **版本控制和兼容性**:如果是由于API升级导致的不兼容问题,考虑回滚到旧版本的API,或者更新你的客户端代码以适应新版本的API结构。 6. **日志记录**:为了调试和排查问题,确保你的应用有完善的日志记录机制...

    解决了3.10.0,Unexpected char xxx at xx in header name异常的jar包

    解决了3.10.0Unexpected char 0x20 at 19 in header name: x-upyun-api-version

    前端开源库-unexpected-function-equality

    "unexpected-function-equality" 是一个专注于函数等价性比较的开源库,它旨在帮助开发者们更直观、准确地判断两个函数是否具有相同的行为,即使它们的实现可能有所不同。在JavaScript这种动态类型的编程语言中,...

    解决error: Unexpected console statement (no-console) at src\... 的js文件

    Vuejs报错error: Unexpected console statement (no-console) at src\... 解决办法

    ajaxFileUpload上传文件时无返回结果,调整函数后出现syntaxError :unexpected

    在使用AjaxFileUpload进行文件上传时,可能会遇到一些常见的问题,比如“无返回结果”或者在尝试解决问题后出现“syntaxError: unexpected”的错误提示。这个情况通常与JavaScript语法错误、服务器端响应格式、...

    解决fatal error C1010 unexpected end of file while looking for precompiled header

    在编程过程中,尤其是在使用Microsoft Visual Studio (VC) 进行C++开发时,可能会遇到一个编译错误:“fatal error C1010: unexpected end of file while looking for precompiled header directive”。这个错误通常...

    unexpected, 意外的可以扩展BDD断言工具包.zip

    这个工具包的名字"Unexpected"可能源于其对传统断言方式的创新,它不仅提供了基本的断言功能,还允许开发者自定义复杂的比较逻辑,以满足各种特定的测试需求。这种高度可定制性使得"意外的"断言不仅适用于常规的单元...

    UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY

    "UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY" 是一个常见的错误消息,它出现在Linux操作系统中,尤其是在系统突然关机或非正常关闭后。这个错误表明文件系统(File System)存在一致性问题,需要进行检查和修复。...

    go 编译报unexpected directory layout 错误

    在Go语言的开发过程中,有时会遇到“unexpected directory layout”的编译错误,这通常是由于Go项目的目录结构不符合标准或者是Go的环境配置不正确所导致的。在这个特定的问题中,我们看到错误信息显示在尝试编译名...

    go 语言unexpected directory layout问题解决

    在使用Go语言进行开发时,有时会遇到"unexpected directory layout"这样的错误,这通常是由于不正确的目录结构或者环境变量设置导致的。以下是一些解决这个问题的详细步骤。 首先,我们需要理解Go语言的标准目录...

    UnexpectedException如何解决.md

    UnexpectedException如何解决.md

    UnexpectedException解决办法.md

    UnexpectedException解决办法.md

    Module parse failed: Unexpected token

    有时,不同版本之间的不兼容会导致解析错误。可以按照官方推荐的版本进行安装,例如: ```bash npm install -D babel-loader @babel/core @babel/preset-env webpack ``` 注意,如果你的错误信息提示需要`...

    解决vue打包后刷新页面报错:Unexpected token <

    这样一来,错误的路径就会导致浏览器返回了404页面,而404页面中的内容若未经处理,则可能包含未经转义的HTML实体,这就导致了在解析过程中抛出了“Unexpected token <”的错误。 为了解决这个问题,应该修改该页面...

Global site tag (gtag.js) - Google Analytics