「深圳CDA数据分析师」-深耕数据人才教育15年,致力于打造数据人才全方位学习平台,汇聚优质学习资源,助力数据人才找到好工作。数据分析培训,业务数据赋能,商业策略分析,精益数据挖掘,python机器学习等。CDA秉承着总结凝练先进的商业数据分析实践为使命,明晰各类数据分析从业者的知识体系为职责,旨在加强范围内化、科学化、专业化的大数据及数据分析人才队伍建设,进一步提升数据分析师的职业素养与能力水平,促进数据分析行业的高质量持续发展。
Hbase优化方法
(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。
微信扫码关注公众号
获取更多考试热门资料