【发布时间】:2015-05-03 14:54:48
【问题描述】:
我的 Hbase 版本是 0.92.1。
我发现我的 reduce 工作有异常:
java.io.IOException: HRegionInfo was null or empty in .META., row=keyvalues={single,20150411 hxmyxy2013 REF// 336d5ebc5436534e61d16e63ddfca327 7f92f92e8e693531c12a1dcc773f9ffa,1430298962344.ea72df9a3703e476b9f7e3368be47aa2./info:server/1430356486086/Put/vlen=28, single,20150411 hxmyxy2013 REF// 336d5ebc5436534e61d16e63ddfca327 7f92f92e8e693531c12a1dcc773f9ffa,1430298962344.ea72df9a3703e476b9f7e3368be47aa2./info:serverstartcode/1430356486086/Put/vlen=8}
然后我运行命令:hbase hbck
其中输出 57 个错误,例如:
ERROR: Region hdfs://hadoop01.yupoo-inc.com:9000/hbase/single/fa921b223692d89be274979e1e8f1674 on HDFS, but not listed in META or deployed on any region server
=====
总结:
-ROOT- 没问题。
Number of regions: 1
Deployed on: hadoop02.yupoo-inc.com,60020,1430643409216
.META。没关系。
Number of regions: 1
Deployed on: hadoop01.yupoo-inc.com,60020,1430643412565
全局没问题。
Number of regions: 1
Deployed on: hadoop03.yupoo-inc.com,60020,1430643409040
单身没问题。
Number of regions: 2081
Deployed on: hadoop01.yupoo-inc.com,60020,1430643412565 hadoop02.yupoo-inc.com,60020,1430643409216 hadoop03.yupoo-inc.com,60020,1430643409040 hadoop04.yupoo-inc.com,60020,1430643408453 hadoop05.yupoo-inc.com,60020,1430643407996
总结没问题。
Number of regions: 2540
Deployed on: hadoop01.yupoo-inc.com,60020,1430643412565 hadoop02.yupoo-inc.com,60020,1430643409216 hadoop03.yupoo-inc.com,60020,1430643409040 hadoop04.yupoo-inc.com,60020,1430643408453 hadoop05.yupoo-inc.com,60020,1430643407996
总体还可以。
Number of regions: 172
Deployed on: hadoop01.yupoo-inc.com,60020,1430643412565 hadoop02.yupoo-inc.com,60020,1430643409216 hadoop03.yupoo-inc.com,60020,1430643409040 hadoop04.yupoo-inc.com,60020,1430643408453 hadoop05.yupoo-inc.com,60020,1430643407996
网址没问题。
Number of regions: 5
Deployed on: hadoop02.yupoo-inc.com,60020,1430643409216 hadoop03.yupoo-inc.com,60020,1430643409040
检测到 57 个不一致。
状态:不一致
=====
似乎某些区域信息不在元表中,所以我问了谷歌并找到了类似 hbase hbck -repair 或 -fixMeta -fixAssignments 或 -repairHoles 的命令
但是我的hbase版本没有这个命令,我运行命令hbase hbck --help,它输出:
未知的命令行选项:--help
用法:fsck [opts]
[opts] 在哪里:
-details 显示所有地区的完整报告。
-timelag {timeInSeconds} 只处理没有 在过去 {{timeInSeconds} 秒内经历了任何元数据更新。
-fix 尝试修复一些错误。
-sleepBeforeRerun {timeInSeconds} 在使用 -fix 运行检查修复是否有效之前睡眠这么多秒
-summary 仅打印表格和状态的摘要。
-metaonly 只检查ROOT和META表的状态。
但是当我运行 hbase hbck -fix 时,它什么也没做,那么任何人都可以帮助我吗?
【问题讨论】: