在 Azure HDInsight 中使用 Apache Ambari 最佳化 Apache HBase
Apache Ambari 是用來管理和監視 HDInsight 叢集的 Web 介面。 如需Ambari Web UI的簡介,請參閱 使用Apache Ambari Web UI管理 HDInsight 叢集。
Apache HBase 組態會從 [HBase 設定] 索引標籤 修改。下列各節說明影響 HBase 效能的一些重要組態設定。
設定HBASE_HEAPSIZE
注意
本文包含字詞 master 的參考,這是 Microsoft 不再使用的字詞。 從軟體中移除該字詞時,我們也會將其從本文中移除。
HBase 堆積大小會指定要依 區域 和 主 伺服器以 MB 為單位使用的堆積數量上限。 默認值為 1,000 MB。 此值應該針對叢集工作負載進行調整。
若要修改,請流覽至 [HBase 設定] 索引標籤中的 [進階 HBase-env] 窗格,然後尋找
HBASE_HEAPSIZE
設定。將預設值變更為 5,000 MB。
優化大量讀取工作負載
下列設定對於改善大量讀取工作負載的效能很重要。
區塊快取大小
區塊快取是讀取快取。 參數 hfile.block.cache.size
會控制區塊快取大小。 默認值為 0.4,占區域伺服器記憶體總數的 40%。 區塊快取大小越大,更快速的隨機讀取。
若要修改此參數,請流覽至 HBase Configs 索引標籤中的 [設定] 索引標籤,然後找出 [配置給讀取緩衝區] 的 RegionServer % 。
若要變更值,請選取 [ 編輯 ] 圖示。
Memstore 大小
所有編輯都會儲存在記憶體緩衝區中,稱為 Memstore。 此緩衝區會增加單一作業中可以寫入磁碟的數據總量。 它也會加快最近編輯的存取速度。 Memstore 大小會定義下列兩個參數:
hbase.regionserver.global.memstore.UpperLimit
:定義 Memstore 合併之區域伺服器的最大百分比。hbase.regionserver.global.memstore.LowerLimit
:定義 Memstore 合併可使用的區域伺服器下限百分比。
若要針對隨機讀取進行優化,您可以減少 Memstore 上限和下限。
從磁碟掃描時擷取的數據列數目
設定 hbase.client.scanner.caching
會定義掃描器上呼叫 方法時 next
,從磁碟讀取的數據列數目。 預設值是 100。 數位愈高,從用戶端到區域伺服器的遠端呼叫愈少,導致掃描速度較快。 不過,此設定會增加用戶端的記憶體壓力。
重要
請勿設定值,使掃描器上下一個方法叫用之間的時間大於掃描器逾時。 掃描器逾時持續時間是由 hbase.regionserver.lease.period
屬性所定義。
優化大量寫入工作負載
下列組態對於改善大量寫入工作負載的效能很重要。
區域檔案大小上限
HBase 會以內部檔案格式儲存資料,稱為 HFile
。 屬性 hbase.hregion.max.filesize
會定義單一 HFile
區域的大小。 如果區域中所有 HFiles
的總和大於此設定,區域會分割成兩個區域。
區域檔案大小越大,分割數目就越小。 您可以增加檔案大小,以判斷產生最大寫入效能的值。
避免更新封鎖
屬性
hbase.hregion.memstore.flush.size
會定義將 Memstore 排清到磁碟的大小。 默認大小為 128 MB。hbase.hregion.memstore.block.multiplier
定義 HBase 區域區塊乘數。 預設值為 4。 允許的最大值為 8。如果 Memstore 是 (
hbase.hregion.memstore.flush.size
*hbase.hregion.memstore.block.multiplier
) 位元組,HBase 會封鎖更新。使用排清大小和區塊乘數的預設值,當 Memstore 的大小為 128 * 4 = 512 MB 時,就會封鎖更新。 若要減少更新封鎖計數,請增加的值
hbase.hregion.memstore.block.multiplier
。
定義 Memstore 大小
hbase.regionserver.global.memstore.upperLimit
和 hbase.regionserver.global.memstore.lowerLimit
參數會定義 Memstore 大小。 將這些值設定為相等會減少寫入期間的暫停(也會導致更頻繁的排清),並導致寫入效能增加。
設定 Memstore 本機配置緩衝區
屬性 hbase.hregion.memstore.mslab.enabled
會定義 Memstore 本機配置緩衝區使用量。 啟用時 (true),此設定會在大量寫入作業期間防止堆積分散。 預設值為 true。