HBase 的參數很多,一般都是在使用和優化的過程中不斷地調整的,這里只列舉出比較重要和常用的幾個HBase參數優化方案,大家可以參考一下。
合并與分裂
- hbase.hregion.majorcompaction storeFile 的合并時間間隔 - hbase.regionserver.regionSplitLimit 最大的 region 數量 - hbase.hregion.max.filesize 每個 region 的最大限制 這三個參數,是用于控制 StoreFile 的合并和 Region 的分裂的。在生產環境下,這兩個操作一般都會設置為禁止自動合并和禁止自動 split,因為這兩步的操作都是比較耗費資源的,自動會讓操作時間不可控,如果是在業務繁忙的時間做了這些操作造成的影響是非常大的,所以一般配置禁止自動,轉為自己管理,在系統沒那么繁忙的晚上手動出發相關操作。
內存
file.block.cache.size BlockCache 的內存大小限制 hbase.regionserver.global.memstore.upperLimit Memstore 占用內存在總內存中的比例 RegionServer 的內存主要分為兩塊,讀緩存 block cache 和寫緩存 memstore,第一個配置是 block cache 的內存大小限制,第二個配置是 memstore 占用內存在總內存中的比例,所以這兩個配置要配合使用才能控制讀和寫緩存的大小。 block cache 默認是 0.25,在讀多于寫的業務中,可以適當調大該值。upperLimit 默認值 0.4,寫偏多的場景可以適量調大建議 0.45,RegionSerever 中 block cache 和 memstore cache 的總大小不會超過 0.8,太大可能會造成 oom。
更多關于“大數據培訓”的問題,歡迎咨詢千鋒教育在線名師。千鋒教育多年辦學,課程大綱緊跟企業需求,更科學更嚴謹,每年培養泛IT人才近2萬人。不論你是零基礎還是想提升,都可以找到適合的班型,千鋒教育隨時歡迎你來試聽。