美文网首页hbase
HBase优化方法

HBase优化方法

作者: 坨坨的大数据 | 来源:发表于2022-03-20 12:57 被阅读0次

(1)、减少调整

HBase中有几个内容会动态调整,如region(分区)、HFile,所以通过一些方法来减少这些会带来I/O开销的调整

Region:如果没有预建分区的话,那么随着region中条数的增加,region会进行分裂,这将增加I/O开销,所以解决方法就是根据你的RowKey设计来进行预建分区,减少region的动态分裂。

HFile:HFile是数据底层存储文件,在每个memstore进行刷新时会生成一个HFile,当HFile增加到一定程度时,会将属于一个region的HFile进行合并,这个步骤会带来开销但不可避免,但是合并后HFile大小如果大于设定的值,那么HFile会重新分裂。为了减少这样的无谓的I/O开销,建议估计项目数据量大小,给HFile设定一个合适的值

(2)、减少启停

数据库事务机制就是为了更好地实现批量写入,较少数据库的开启关闭带来的开销,那么HBase中也存在频繁开启关闭带来的问题。

关闭Compaction,在闲时进行手动Compaction

因为HBase中存在Minor Compaction和Major Compaction,也就是对HFile进行合并,所谓合并就是I/O读写,大量的HFile进行肯定会带来I/O开销,甚至是I/O风暴,所以为了避免这种不受控制的意外发生,建议关闭自动Compaction,在闲时进行compaction

批量数据写入时采用BulkLoad

如果通过HBase-Shell或者JavaAPI的put来实现大量数据的写入,那么性能差是肯定并且还可能带来一些意想不到的问题,所以当需要写入大量离线数据时建议使用BulkLoad

(3)、减少数据量

虽然我们是在进行大数据开发,但是如果可以通过某些方式在保证数据准确性同时减少数据量,何乐而不为呢?

开启过滤,提高查询速度:开启BloomFilter,BloomFilter是列族级别的过滤,在生成一个StoreFile同时会生成一个MetaBlock,用于查询时过滤数据

使用压缩:一般推荐使用Snappy和LZO压缩

(4)、合理设计

在一张HBase表格中RowKey和ColumnFamily的设计是非常重要,好的设计能够提高性能和保证数据的准确性

A、RowKey设计:应该具备以下几个属性

散列性:散列性能够保证相同相似的rowkey聚合,相异的rowkey分散,有利于查询

简短性:rowkey作为key的一部分存储在HFile中,如果为了可读性将rowKey设计得过长,那么将会增加存储压力

唯一性:rowKey必须具备明显的区别性

业务性:假如我的查询条件比较多,而且不是针对列的条件,那么rowKey的设计就应该支持多条件查询如果我的查询要求是最近插入的数据优先,那么rowKey则可以采用叫上Long.Max-时间戳的方式,这样rowKey就是递减排列

B、列族的设计

列族的设计需要看应用场景

多列族设计的优劣
优势:
HBase中数据时按列进行存储的,那么查询某一列族的某一列时就不需要全盘扫描,只需要扫描某一列族,减少了读I/O;
其实多列族设计对减少的作用不是很明显,适用于读多写少的场景。

劣势:
降低了写的I/O性能。原因如下:数据写到store以后是先缓存在memstore中,同一个region中存在多个列族则存在多个store,每个store都一个memstore,当其实memstore进行flush时,属于同一个region
的store中的memstore都会进行flush,增加I/O开销。

相关文章

  • HBase优化方法

    (1)、减少调整 HBase中有几个内容会动态调整,如region(分区)、HFile,所以通过一些方法来减少这些...

  • HBase学习笔记(二)

    HBase优化相关 HBase查询优化 1、设置scan缓存 scanner.SetCaching(10000) ...

  • 关于hbase、spark、hive使用时的优化问题

    一、Hbase的优化 1、JVM优化: 1)如:HBase RegionServer 的 Java 配置选项 -X...

  • HBase那些事

    HBase那些事 @(大数据工程学院)[HBase, Hadoop, 优化, HadoopChen, hbase]...

  • HBase性能优化方法总结

    本文主要是从HBase应用程序设计与开发的角度,总结几种常用的性能优化方法。 Auto Flash 通过调用HTa...

  • 103-BigData-31HBase优化

    上一篇:102-BigData-30HBase 三、HBase优化 3.1、高可用在HBase中Hmaster负责...

  • HBase优化

    HBase优化 1、垃圾回收优化使用CMS垃圾回收机制2、启用压缩GZIP、Snappy、LZO,推荐Snappy...

  • HBase 优化

    1 高可用 在 HBase 中 HMaster 负责监控 RegionServer 的生命周期,均衡 Region...

  • HBase优化

    1.1、高可用 在HBase中Hmaster负责监控RegionServer的生命周期,均衡RegionServe...

  • hbase优化

    1、内存 年轻代年轻代最大值 java -Xmx256M -Xms256m -XX:NewSize=xxm -XX...

网友评论

    本文标题:HBase优化方法

    本文链接:https://www.haomeiwen.com/subject/gsgodrtx.html