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

来源:互联网 发布:富谦网络 编辑:程序博客网 时间:2024/05/12 02:20

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

空行的样子如下:

NameRegion ServerEncoded NameStart KeyEnd Key。。。。。。。。    medicine_02,0100110000010586400,1349179411566node4:60030191753168401001100000105864000100110000011750400medicine_02,0100110000011750400,1349223763122node2:6003056952537201001100000117504000100110000012653400medicine_02,0100110000012653400,1349224859494node10:60030187469120201001100000126534000100110000013080400medicine_02,0100110000013080400,1349225913534node6:600305796911601001100000130804000100110000013785400medicine_02,0100110000013785400,1349225913535node11:60030151505156301001100000137854000100110000014603400medicine_02,0100110000014603400,1349225913535node2:6003017144740000100110000014603400 medicine_02,0100110000015485400,1349225913537node6:60030179917966601001100000154854000100110000016345400medicine_02,0100110000016345400,1349225913538node11:60030176802155201001100000163454000100110000017154400medicine_02,0100110000017154400,1349225913539node10:60030147724870801001100000171544000100110000018127400。。。。。。。    
参看红色字体的哪一行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>