Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)
压缩格式:默认压缩格式是NONE。可选值有GZ、LZO、SNAPPY。
版本数:HBase默认定义为3个版本。
以秒为单位的存活时间TTL:使用对象是行中的列簇,一旦达到过期时间,HBase会删除这些行。
快大小:HBase默认的块大小是64KB,不同于HDFS默认64MB的块大小。原因是HBase需要支持随机访问。一旦找到了行键所在的块,接下来就会定位对应的单元格。使用64KB大小的块扫描速度显然优于64MB大小的块。
内存模式:默认值是false。如果设置为true,HBase会尝试将整个列簇保存在内存中。只有在需要保存时才会持久化写入磁盘。但是在运行时HBase会尝试将整张表加载到内存里。
块缓存:默认值是true。块缓存是内存存储,HBase使用块缓存将最近使用的块加载到内存中。块缓存会根据“最近没有使用”(LRU)的规则删除块数据。
布隆过滤:布隆过滤是一种空间高效的概率数据结构,它能检测元素(行键,或行键与列标识的结合)“确定不”存在于表中,或元素“可能”存在于表中。默认值是NONE。可以设置为ROW,表示使用行键级的布隆过滤,也可以设置为ROWCOL,表示使用行键与列标识级别的布隆过滤。
(1)一般不建议设计多个列族。
具体原因如下,假如HBase表的表设置两个两个列族,若已一个列族1000万行,另一个列族100行。当一个要求region分裂时候,会导致100行的列会同样分布到多个region中。这样就出现基数问题,会导致扫描列族A的性能低下。某个列族在flush的时候,它邻近的列族也会因关联效应出发flush,最终导致系统产生更多的I/O。
(2)数据块缓存配置
如果经常顺序访问或者很少访问,可以关闭列族的缓存,让BLOCKCACHE 参数设置false,列族缓存默认打开。
(3)激进缓存配置
可以选择一个列族赋予更高的缓存,该参数IN_MEMORY 设置true。列族默认的关闭的。
(4)布隆过滤器(BLOOMFILTER)设置
减少硬盘读取数据带来的开销。对存储的数据块做反向测试,占用额外的空间。
(5)生产时间配置
超过这个时间设置的就会在下一次大合并中被删除。TTL =>"18000"
(6)列族压缩
压缩可以节省空间,读写数据会增加CPU的使用率 LZO,SNAPPY,GZIP
(7)单元时间版本
默认为1个版本,可以通过指定多个版本,来保存历史数据
作者:大数据和人工智能躺过的坑
出处:http://www.cnblogs.com/zlslch/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。
如果您认为这篇文章还不错或者有所收获,您可以通过右边的“打赏”功能 打赏我一杯咖啡【物质支持】,也可以点击右下角的【好文要顶】按钮【精神支持】,因为这两种支持都是我继续写作,分享的最大动力!