meta表修复一
查看hbasemeta情况
hbase hbck
1.重新修复hbase meta表(根据hdfs上的regioninfo文件,生成meta表)
hbase hbck -fixMeta
2.重新将hbase meta表分给regionserver(根据meta表,将meta表上的region分给regionservere)
hbase hbck -fixAssignments
meta表修复二
当出现漏洞
hbase hbck -fixHdfsHoles (新建一个region文件夹)
hbase hbck -fixMeta (根据regioninfo生成meta表)
hbase hbck -fixAssignments (分配region到regionserver上)
meta表修复三
缺少regioninfo
hbase hbck -fixHdfsOrphans
hbase region 分配问题
region分不出去,可是删除 rmr /hbase/region-in-transition
hbase region 引用文件出错
Found lingering reference file hdfs:
hbase hbck -fixReferenceFiles
重复region问题:
查看meta中的region
scan 'hbase:meta' , {LIMIT=>10,FILTER=>"PrefixFilter('INDEX_11')"}
在数据迁移的时候碰到两个重复的region
b0c8f08ffd7a96219f748ef14d7ad4f8,73ab00eaa7bab7bc83f440549b9749a3
删除两个重复的region
delete 'hbase:meta','INDEX_11,4380_2431,1429757926776.b0c8f08ffd7a96219f748ef14d7ad4f8.','info:regioninfo'
delete 'hbase:meta','INDEX_11,5479_0041431700000000040100004815E9,1429757926776.73ab00eaa7bab7bc83f440549b9749a3.','info:regioninfo'
删除两个重复的hdfs
/hbase/data/default/INDEX_11/b0c8f08ffd7a96219f748ef14d7ad4f8
/hbase/data/default/INDEX_11/73ab00eaa7bab7bc83f440549b9749a3
对应的重启regionserver(只是为了刷新hmaster上汇报的RIS的状态)
肯定会丢数据,把没有上线的重复region上的数据丢失
新hbase hbck
新版的hbck
新版本的 hbck 可以修复各种错误,修复选项是:
(1)-fix,向下兼容用,被-fixAssignments替代
(2)-fixAssignments,用于修复region assignments错误
(3)-fixMeta,用于修复meta表的问题,前提是HDFS上面的region info信息有并且正确。
(4)-fixHdfsHoles,修复region holes(空洞,某个区间没有region)问题
(5)-fixHdfsOrphans,修复Orphan region(hdfs上面没有.regioninfo的region)
(6)-fixHdfsOverlaps,修复region overlaps(区间重叠)问题
(7)-fixVersionFile,修复缺失hbase.version文件的问题
(8)-maxMerge <n> (n默认是5),当region有重叠是,需要合并region,一次合并的region数最大不超过这个值。
(9)-sidelineBigOverlaps ,当修复region overlaps问题时,允许跟其他region重叠次数最多的一些region不参与(修复后,可以把没有参与的数据通过bulk load加载到相应的region)
(10)-maxOverlapsToSideline <n> (n默认是2),当修复region overlaps问题时,一组里最多允许多少个region不参与
由于选项较多,所以有两个简写的选项
(11) -repair,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps
(12)-repairHoles,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans
新版本的 hbck
(1)缺失hbase.version文件
加上选项 -fixVersionFile 解决
(2)如果一个region即不