前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >hbase数据清理 原

hbase数据清理 原

作者头像
domain0
发布2018-08-02 11:47:29
2.1K0
发布2018-08-02 11:47:29
举报
文章被收录于专栏:运维一切
代码语言:javascript
复制
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:

代码语言:javascript
复制
#!/bin/sh
exec /usr/local/code_hbase/hbase/bin/hbase shell <<EOF
    major_compact('TABLE')
EOF
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2016/05/29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档