1:预分区
初次创建Hbase表时,为了防止数据过热,进行预分区
2:手动SPLIT
自动split在前面说了并不如自己管理split靠谱(但这也增加了程序员的运维成本), 如果你也下定决心要自己动手,那还需要修改配置文件hbase-site.xml中的
3:写优化
1:关闭自动刷新, setAutoFlush等于false,每次提交不用发送请求,等缓存写满再提交请求,也可以使用
初次创建Hbase表时,为了防止数据过热,进行预分区
create't', {NAME => 'f', VERSIONS => 1,COMPRESSION => 'SNAPPY'},{SPLITS => ['10','20','30']}
自动split在前面说了并不如自己管理split靠谱(但这也增加了程序员的运维成本), 如果你也下定决心要自己动手,那还需要修改配置文件hbase-site.xml中的
hbase.hregion.max.filesize
(对,就是前面公式里的第二项)为一个较大的值,比如100G。 因此这里需要说下手动split。只需要在
HBase shell
中执行一条语句:
split 'regionName', 'splitKey'
3:写优化
1:关闭自动刷新, setAutoFlush等于false,每次提交不用发送请求,等缓存写满再提交请求,也可以使用
flushCommits强制提交请求
2:关闭writeToWAL(false),regionserver不会把put写入Write Ahead Log,仅写入到内存,如果出现RegionServer失败,将导致数据丢失。
3:设置写缓存setWriteBufferSize