hbase列族高级配置

0 先看如下desc后的列族属性字段:

hbase(main):003:0> describe 'stu'
Table stu is ENABLED                                                            
stu                                                                             
COLUMN FAMILIES DESCRIPTION                                                     
{NAME => 'base', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'ROW', REPLICATIO
N_SCOPE => '0', VERSIONS => '1', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL
 => 'FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY =>
 'false', BLOCKCACHE => 'true'}                                                 
1 row(s) in 0.5000 seconds

1 blocksize:

数据块大小配置优化:   blocksize默认是64K 
  数据块越小,索引越大,占用内存也越大,   如果随机查询,比如某个表+某个ID方式,   如果是顺序scan扫描区间,那么设置大一点  否则保持默认值
 
create "stu",{NAME => "cf",BLOCKSIZE =>"65536"} 设置stu cf列族块大小为64K,默认单位是字节,采用这种细粒度,目的是块操作时更加有效加载和缓存数据,
不依赖于hdfs块尺寸设计,仅仅是hbase内部的一个属性。

2   数据块缓存的配置:   bloockcache

数据块缓存的配置:
如果经常顺序访问或很少被访问,可以关闭列族的缓存,列族缓存默认打开

create "stu",{NAME => "cf",BLOCKCACHE =>"false"}

3 激进缓存的配置
可以选择一个列族赋予更高的优先级缓存, 激进缓存,表示优先级更高,IN_MEMORY默认是false

create "stu",{NAME => "cf",IN_MEMORY =>"true"}

4 布隆过滤器: BLOOMFILTER  开启时,会对数据产生一个标记,如果没有标记在去表里查数据,  反向测试(索引)有两种: 有 /  不知道, 会记录数据的信息,
布隆过滤器的配置:
减少硬盘读取数据带来的开销,对储存的数据块做反向测试,占用额外的空间

create "stu",{NAME => "cf",BLOOMFILTER =>"ROWCOL"}

5 TTL 生存时间,当数据记录一段时间想删除掉,是以s为单位的,设置一个时间 超过后会被设置为删除标记

生存时间配置:(TTL)
超过这个时间设置的就会在下一次大合并中被删除

create "stu",{NAME => "cf",TTL =>"18000"}

6 压缩
压缩可以节省空间,读写数据会增加CPU的使用率 LZO,SNAPPY,GZIP

create "stu",{NAME => "cf",COMPRESSION =>"GZIP"}

7 单元时间版本: 0.96版本默认是3个, 0.98版本是1, 要根据业务来划分,版本是历史记录,版本增多意味空间消耗。

单元时间版本:
默认维护一个时间版本

create "stu",{NAME =>"cf",VERSIONS =>5}

相关推荐