hbase compact

首先明白大合并和小合并是指什么。

小合并:删除一条记录,就会在该记录上打上标记,被打上标记的记录就成了墓碑记录,该记录使用get和scan查询不到,但还是在HFile中。只有进行大合并的时候才会删除HFile中的墓碑记录。

大合并:指定region的一个列族的所有HFile.合并完成后,这个列族的所有HFile文件合并成一个HFile文件,可以在shell中手动触发,但该动作相当耗资源。小合并是将多个小的HFile文件内容读取出来合并生成一个大的HFile,把新文件设置成激活状态,然后删除小的HFile
大合并和小合并都是在region的内部进行的,并不涉及到region之间的合并。merge_region是指将两个region合并为一个region。

 

hbase的合并有四个命令:

compact, compact_rs, major_compact, merge_region.

compact 对所有region的每一个region进行合并或者将一个region的row合并成一个单独的region。
在合并的时候,可以设置合并的类型:NORMAL或者MOB,默认是NORMAL。

使用示例:
1 合并一个table的所有的region
    compact 'ns1:t1'
    compact 't1'
2 合并整个的region
    compact 'r1'
3 仅仅合并某个region的一个列族
    compact 'r1','f1'
4 合并某个table中的一个列族
    compact 't1','f1'
5 使用MOB类型合并table
    compact 't1',nil,'MOB'
6 使用MOB类型合并table中的一个列族
    compact 't1','c1','MOB'

compact_rs 对某个regionserver上面的所有的region中的每个region进行合并
使用示例
1 合并一个regionserver上面的所有的region
    compact_rs 'host187.example.com,60020'
    compact_rs 'host187.example.com,60020,1289493121758'
2 将一个regionserver上所有的region进行合并,true表示大合并
    compact_rs 'host187.example.com,60020,1289493121758', true

major_compact 
合并示例
1 对table中所有的region的每个region进行合并
    major_compact 't1'
    major_compact 'ns1:t1'
2 对单独的某个region进行合并
    major_compact 'r1'
3 对某个region的一个单独的列族进行合并
    major_compact 'r1', 'f1'
4 对某个table的一个单独的列族进行合并
    major_compact 'ns1:t1', 'f1'
5 使用MOB类型合并table
    major_compact 't1', nil, 'MOB'
6 使用MOB类型合并table中的一个列族
    major_compact 'ns1:t1', 'f1', 'MOB'

merge_region
合并两个region。使用'true'这个第三个可选的参数将强制进行合并。
该命令主要是由专家使用。使用方法和另外三个命令也有很大区别。
 ENCODED_REGIONNAME是FULL_REGIONNAME的哈希后缀。如果FULL_REGIONNAME是
 "TestTable,0094429456,1289497600452.527db22f95c8a9e0116f0cc13c680396."
 那么ENCODED_REGIONNAME就是"527db22f95c8a9e0116f0cc13c680396".
 使用示例:
hbase> merge_region 'FULL_REGIONNAME', 'FULL_REGIONNAME'
hbase> merge_region 'FULL_REGIONNAME', 'FULL_REGIONNAME', true
hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME'
hbase> merge_region 'ENCODED_REGIONNAME', 'ENCODED_REGIONNAME', true

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值