您的位置:首页 > 运维架构

Hadoop HBase概念学习系列之HBase表的一些设置(强烈推荐好好领悟)(十三)

2016-12-07 10:47 267 查看
  

  [b]压缩格式[/b]:默认压缩格式是NONE。可选值有GZ、LZO、SNAPPY。

  [b]版本数[/b]:HBase默认定义为3个版本。

  [b]以秒为单位的存活时间TTL[/b]:使用对象是行中的列簇,一旦达到过期时间,HBase会删除这些行。

  快大小:HBase默认的块大小是64KB,不同于HDFS默认64MB的块大小。原因是HBase需要支持随机访问。一旦找到了行键所在的块,接下来就会定位对应的单元格。使用64KB大小的块扫描速度显然优于64MB大小的块。

  [b]内存模式[/b]:默认值是false。如果设置为true,HBase会尝试将整个列簇保存在内存中。只有在需要保存时才会持久化写入磁盘。但是在运行时HBase会尝试将整张表加载到内存里。

  [b]块缓存[/b]:默认值是true。块缓存是内存存储,HBase使用块缓存将最近使用的块加载到内存中。块缓存会根据“最近没有使用”(LRU)的规则删除块数据。  

  [b]布隆过滤[/b]:布隆过滤是一种空间高效的概率数据结构,它能检测元素(行键,或行键与列标识的结合)“确定不”存在于表中,或元素“可能”存在于表中。默认值是NONE。可以设置为ROW,表示使用行键级的布隆过滤,也可以设置为ROWCOL,表示使用行键与列标识级别的布隆过滤。

(1)[b]一般不建议设计多个列族[/b]。

  具体原因如下,假如HBase表的表设置两个两个列族,若已一个列族1000万行,另一个列族100行。当一个要求region分裂时候,会导致100行的列会同样分布到多个region中。这样就出现基数问题,会导致扫描列族A的性能低下。某个列族在flush的时候,它邻近的列族也会因关联效应出发flush,最终导致系统产生更多的I/O。

(2)数据块缓存配置

  如果经常顺序访问或者很少访问,可以关闭列族的缓存,让BLOCKCACHE 参数设置false,列族缓存默认打开。

(3)[b]激进缓存配置[/b]

  可以选择一个列族赋予更高的缓存,该参数IN_MEMORY 设置true。列族默认的关闭的。

(4)[b]布隆过滤器(BLOOMFILTER)设置[/b]

  减少硬盘读取数据带来的开销。对存储的数据块做反向测试,占用额外的空间。

(5)[b]生产时间配置[/b]

  超过这个时间设置的就会在下一次大合并中被删除。TTL =>"18000"

(6)[b]列族压缩[/b]

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

(7)[b]单元时间版本[/b]

  默认为1个版本,可以通过指定多个版本,来保存历史数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐