线上和开发集群都遇到过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 failure (8000ffff)”明确指出了一个非预期的失败情况,通常这类错误表明程序在执行过程中遇到了未被预料到的问题,导致程序无法正常继续执行。根据提供的信息,我们可以初步判断错误发生...
在VB(Visual Basic)编程中,"Unexpected error"是一个常见的问题,这通常意味着在程序运行过程中遇到了未预见的异常情况,导致程序无法正常执行。这类错误可能是由于多种原因引起的,如代码逻辑错误、内存管理问题...
「unexpected operator」错误通常是由于 Shell 解释器的不兼容性所导致的。在 Ubuntu 系统中,默认的 Shell 解释器是 dash,而不是 bash。dash 和 bash 之间存在着一定的不兼容性,导致一些 bash 的语法在 dash 中...
5. **版本控制和兼容性**:如果是由于API升级导致的不兼容问题,考虑回滚到旧版本的API,或者更新你的客户端代码以适应新版本的API结构。 6. **日志记录**:为了调试和排查问题,确保你的应用有完善的日志记录机制...
解决了3.10.0Unexpected char 0x20 at 19 in header name: x-upyun-api-version
"unexpected-function-equality" 是一个专注于函数等价性比较的开源库,它旨在帮助开发者们更直观、准确地判断两个函数是否具有相同的行为,即使它们的实现可能有所不同。在JavaScript这种动态类型的编程语言中,...
Vuejs报错error: Unexpected console statement (no-console) at src\... 解决办法
在使用AjaxFileUpload进行文件上传时,可能会遇到一些常见的问题,比如“无返回结果”或者在尝试解决问题后出现“syntaxError: unexpected”的错误提示。这个情况通常与JavaScript语法错误、服务器端响应格式、...
在编程过程中,尤其是在使用Microsoft Visual Studio (VC) 进行C++开发时,可能会遇到一个编译错误:“fatal error C1010: unexpected end of file while looking for precompiled header directive”。这个错误通常...
这个工具包的名字"Unexpected"可能源于其对传统断言方式的创新,它不仅提供了基本的断言功能,还允许开发者自定义复杂的比较逻辑,以满足各种特定的测试需求。这种高度可定制性使得"意外的"断言不仅适用于常规的单元...
"UNEXPECTED INCONSISTENCY: RUN fsck MANUALLY" 是一个常见的错误消息,它出现在Linux操作系统中,尤其是在系统突然关机或非正常关闭后。这个错误表明文件系统(File System)存在一致性问题,需要进行检查和修复。...
在Go语言的开发过程中,有时会遇到“unexpected directory layout”的编译错误,这通常是由于Go项目的目录结构不符合标准或者是Go的环境配置不正确所导致的。在这个特定的问题中,我们看到错误信息显示在尝试编译名...
在使用Go语言进行开发时,有时会遇到"unexpected directory layout"这样的错误,这通常是由于不正确的目录结构或者环境变量设置导致的。以下是一些解决这个问题的详细步骤。 首先,我们需要理解Go语言的标准目录...
这样一来,错误的路径就会导致浏览器返回了404页面,而404页面中的内容若未经处理,则可能包含未经转义的HTML实体,这就导致了在解析过程中抛出了“Unexpected token <”的错误。 为了解决这个问题,应该修改该页面...
如果在header函数调用之前有任何输出(哪怕是空格或换行符),也会导致header函数无法正常工作,从而可能产生parse error。 5. 在实际的开发过程中,错误可能发生在脚本的任何地方。所以,应当仔细检查从指定的行数...
python出现”IndentationError: unexpected indent”错误解决办法 Python是一种对缩进非常敏感的语言,最常见的情况是tab和空格的混用会导致错误,或者缩进不对 如下图中的代码: 以上代码中第一次运行可以正常...
如果`fi`前面没有对应的闭合结构,如`fi`前缺少了`else`、`elif`或`fi`本身,也会导致"**syntax error near unexpected token 'fi'**"的错误。确保每个`if`都有正确的配对`fi`,并且结构完整,避免出现缩进错误或者...
在解构赋值时,可以为解构的对象或数组提供默认值,这样即使源对象或数组缺少某些属性,也不会导致错误。 10. **Spread Syntax**: 展开运算符(...)可以用于数组和对象,方便地合并或复制它们。在函数调用时,...
本文实例讲述了JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法。分享给大家供大家参考,具体如下: Uncaught SyntaxError: Unexpected token ILLEGAL 未捕获的语法错误: 意想不到的非法...