最近做大批量的数据插入,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>