HBase入库优化策略

在实际生产中使用到的HBase优化策略

一、优化Region拆分合并以及与拆分Region

1)hbase.hregion.max.filesize默认为256M(在hbase-site.xml中进行配置),当region达到这个阈值时,会自动拆分。可以把这个值设的无限大,则可以关闭HBase自动管理拆分,手动运行命令来进行region拆分,这样可以在不同的region上交错运行,分散I/O负载。
生产中采用10G,同时设置预分区region
(2)预拆分region
用户可以在建表的时候就制定好预设定的region,这样就可以避免后期region自动拆分造成I/O负载。

二、客户端入库调优

(1)关闭自动刷写功能

用户在编写程序入库时,HBase的自动刷写是默认开启的,即用户每一次put都会提交到HBase server进行一次刷写,如果需要高速插入数据,则会造成I/O负载过重。在这里可以关闭自动刷写功能,setAutoFlush(false)。如此,put实例会先写到一个缓存中,这个缓存的大小通过hbase.client.write.buffer这个值来设定缓存区,当缓存区被填满之后才会被送出。如果想要显示刷写数据,可以调用flushCommits()方法。

(2)关闭每次put上的WAL

第二个方法,是关闭每次put上的WAL(writeToWAL(flase))这样可以刷写数据前,不需要预写日志,但是如果数据重要的话建议不要关闭。

(3)选择使用压缩算法

目前HBase默认支持的压缩算法包括GZ,LZO以及snappy(hbase-site.xml中配置)


以上是在生产中实际使用到的方法。

参考文章 https://blog.csdn.net/u014297175/article/details/47979859

猜你喜欢

转载自blog.csdn.net/fct2001140269/article/details/84075685