Region:基于RowKey设计来预建分区,减少Region的动态分裂,如果没有预建分区的话,随着Region中数据的增加,Region会进行分裂,这将增加I/O开销。
HFile:数据底层存储文件,在每个Memstore进行刷新时会生成一个HFile,当HFile增加到一定程度时,会将属于一个Region的HFile进行合并,但注意合并后HFile大小如果大于设定的值,那么HFile又将重新分裂。为了减少这样的无谓的I/O开销,建议估计项目数据量大小,给HFile设定一个合适的值
Compaction:关闭Compaction,在闲时进行手动Compaction。因为HBase中存在Minor 和Major两种方式对HFile进行合并,但大量的HFile合并定会带来更多的I/O开销。
BulkLoad:批量数据写入时采用BulkLoad。
BloomFilter:开启BloomFilter,BloomFilter是列族级别的过滤,在生成一个StoreFile同时会生成一个MetaBlock,用于查询时过滤数据,提高查询速度。
压缩:推荐使用Snappy和LZO压缩。
RowKey设计:满足常用的RowKey设计原则,即散列等。
ColumnFamily列族设计:基于业务设计列族,以及控制列族数量等。
更多学习跟着大佬一起:
表设计优化: https://www.jianshu.com/p/1d7ef5a5cfb1
读性能优化:https://www.jianshu.com/p/0144ae2e5135
写性能优化:https://www.jianshu.com/p/ea06d3ca97e8
基础知识点:https://www.jianshu.com/p/b417999d7786