现在的位置: 首页 > 综合 > 正文

修复HBase rowkey不连续或者rowkey的end key为空的问题

2012年04月29日 ⁄ 综合 ⁄ 共 1462字 ⁄ 字号 评论关闭

最近做大批量的数据插入,30W条图像数据。应该是持续插入造成在通过hbase 60010端口查看表内容的时候,发现Table Regions显示的内容下面有一行数据的End Key为空。这个表下大概有10W条,但是通过hbase count命令统计数据总数的时候却只能检索出来14000条左右。经验证,后续没有找到的数据就是卡在了这个Region块。

空行的样子如下:

Name Region Server Encoded Name Start Key End Key
。。。。。。。。        
medicine_02,0100110000010586400,1349179411566 node4:60030 1917531684 0100110000010586400 0100110000011750400
medicine_02,0100110000011750400,1349223763122 node2:60030 569525372 0100110000011750400 0100110000012653400
medicine_02,0100110000012653400,1349224859494 node10:60030 1874691202 0100110000012653400 0100110000013080400
medicine_02,0100110000013080400,1349225913534 node6:60030 57969116 0100110000013080400 0100110000013785400
medicine_02,0100110000013785400,1349225913535 node11:60030 1515051563 0100110000013785400 0100110000014603400
medicine_02,0100110000014603400,1349225913535 node2:60030 1714474000 0100110000014603400  
medicine_02,0100110000015485400,1349225913537 node6:60030 1799179666 0100110000015485400 0100110000016345400
medicine_02,0100110000016345400,1349225913538 node11:60030 1768021552 0100110000016345400 0100110000017154400
medicine_02,0100110000017154400,1349225913539 node10:60030 1477248708 0100110000017154400 0100110000018127400
。。。。。。。        

参看红色字体的哪一行Region,没有End Key。

考虑删掉错误的Region,然后使用merge合并上下两行Key 不一致的行过程如何

1、在‘.META.’删除错误的Region:在hbase shell下执行 delete '.META.','regionname' ,'列名'(region
name就是上表中的Name列的值,要完全删掉这一行数据,根据你的列簇,有可能会执行好几便以上命令。尝试过deleteall命令,没删掉的说)

2、合并Key
不一致的两行
,在关闭hbase集群的情况下执行一下命令:

hbase
merge <table-name> <region1-name> <region2-name> 

抱歉!评论已关闭.