1. 程式人生 > >HBase入庫優化策略

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