hbase数据清理

hbase(main):020:0> describe 'SVNCHECKOUTTBL_UPT'
DESCRIPTION                                                                             ENABLED                                        
 'SVNCHECKOUTTBL_UPT', {NAME => 'I', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW false                                          
 ', REPLICATION_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '                                                
 0', TTL => '2147483647', KEEP_DELETED_CELLS => 'false', BLOCKSIZE => '65536', IN_MEMOR                                                
 Y => 'false', BLOCKCACHE => 'true'}                                                                                                   
1 row(s) in 0.0410 seconds
hbase(main):022:0> alter 'SVNCHECKOUTTBL_UPT',NAME=>'I',TTL=>'864000'
Updating all regions with the new schema...
60/60 regions updated.
Done.
0 row(s) in 1.2570 seconds

hbase(main):023:0> enable 'SVNCHECKOUTTBL_UPT'
0 row(s) in 4.5620 seconds

hbase(main):024:0> 
hbase(main):026:0> major_compact('SVNCHECKOUTTBL_UPT')
0 row(s) in 0.1920 seconds

上面是基本的操作,如果你的表已经很满,满到几乎快把hadoop撑爆的时候,上面的方法是慢慢删除的方法,下面是具体的解释:

ttl是hbase中表数据的过期时间,一个列族可以对应一个ttl值

habse中数据删除不是立刻执行的,类似软删除,当你标识数据为删除状态之后,hbase会在大版本合并的时候去真正的处理hadoop上的文件,进而释放磁盘空间,

另外注意一点,在修改表的ttl值的时候,一般需要先disable 'table'

还有一剂猛药,就是直接disable 'table' 然后drop 'table'

版本库合并会在后台执行,占用比较多的内存和cup资源,一般在系统负载较低的情况下执行,可以直接写一个脚本,挂crontab执行:

example:

#!/bin/sh
exec /usr/local/code_hbase/hbase/bin/hbase shell <<EOF
    major_compact('TABLE')
EOF

转载于:https://my.oschina.net/xueyi28/blog/683605

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值