我的hbase版本是0.92.1。
我发现我的工作有以下例外:
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
=====
总结:
-根-没关系。
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个不一致。
状态:不一致
似乎有些regioninfo不在meta表中,所以我问google,找到了如下命令 hbase hbck -repair
或者 -fixMeta -fixAssignments
或者 -repairHoles
但是我的hbase版本没有这个命令,我运行这个命令 hbase hbck --help
,输出:
未知的命令行选项:--帮助
用法:fsck[opts]
其中[opt]是:
-详细信息显示所有区域的完整报告。
-timelag{timeinseconds}仅处理在过去{timeinseconds}秒内未经历任何元数据更新的区域。
-尝试修复一些错误。
-sleepbeforererun{timeinseconds}在检查修复程序是否工作之前睡眠这么多秒如果使用-fix运行
-摘要仅打印表和状态的摘要。
-metaonly只检查根表和元表的状态。
但当我跑的时候 hbase hbck -fix
没用,有人能帮我吗?
1条答案
按热度按时间km0tfn4u1#
我自己解决这个问题。
我发现reduce任务失败,出现以下异常:
java.io.ioexception:hregioninfo在.meta.中为null或空,row=keyvalues={single,20150411 hxmyxy2013 ref//336d5ebc5436534e61d16e63ddfca327 7f92f92e8e693531c12a1dcc773f9ffa,1430298962344.ea72df9a3703e476b9e3368be47aa2/info:server/1430356486086/put/vlen=28,单身,20150411 hxmyxy2013参考号:336d5ebc5436534e61d16e63ddfca327 7F92F92E8E69353C12A1DCC773F9FFA,1430298962344.EA72DF9A3703E476B9F7E368BE47AA2/info:serverstartcode/1430356486086/put/vlen=8}
然后,我通过运行以下命令检查hbase shell:get'.meta','single,20150411 hxmyxy2013 ref//336d5ebc5436534e61d16e63ddfca327 7f92f92e8e69353c12a1dcc773f9ffa,1430298962344.ea72df9a3703e476b9e3368be47aa2
哪个输出是:
柱状细胞
info:server timestamp=1430356486086,值=hadoop05.yupoo-inc。com:60020
info:serverstartcode timestamp=1430356486086,值=1430352791855
0.0080秒内2行
然后我删除这个数据,它的键是:
单个,20150411 hxmyxy2013 ref//336d5ebc5436534e61d16e63ddfca327 7F92F92E8E69353C12A1DCC773F9FFA,1430298962344.EA72DF9A3703E476B9F7E3368E47AA2。