在hbase中load balancing機制(1)
(問題)
hbase是如何執行load balancing的呢?
(方法)
在介紹hbase 0.96的load balancing機制前,
先簡略的提及一下hbase 0.94的load balancing機制.
hbase的load balancing是在主控節點(HMaster)上執行,
load balancing的用意是為了平均hbase叢集中,
每一個RegionServer的負擔(loading).
根據這樣的定義,在進行load balancing之前,
第一個問題就是: 什麼是RegionServer的負擔?
在hbase 0.94中,直接定義RegionServer的負擔是服務的Region數量,
因此,在0.94版本中,load balancing的機制十分簡單,
只根據RegionServer上Region的數量決定是否搬移Region.
因此,當load balancing執行時,將進行以下的程序:
1 計算每一台RegionServer上平均的Region數量
2 計算允許的Region數量區間,公式如下:
[floor(average * (1-slop)), ceil(average * (1+slop))]
其中slop是一個可以調整的參數( hbase.regions.slop),預設的值是0.2
3 如果RegionServer上的Region數量超出區間,
從擁有最多Region的RegionServer上把多出的Region
搬移到最少負擔的RegionServer上
4 重複3的動作,直到所有RegionServer上的Region都落在允許的區間中
5 隔一段時間後重新確認(hbase.balancer.period),預設間隔是5分鐘
參考資料:
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html
http://www.searchtb.com/2012/05/hbase_loadbalance_plugins.html
hbase是如何執行load balancing的呢?
(方法)
在介紹hbase 0.96的load balancing機制前,
先簡略的提及一下hbase 0.94的load balancing機制.
hbase的load balancing是在主控節點(HMaster)上執行,
load balancing的用意是為了平均hbase叢集中,
每一個RegionServer的負擔(loading).
根據這樣的定義,在進行load balancing之前,
第一個問題就是: 什麼是RegionServer的負擔?
在hbase 0.94中,直接定義RegionServer的負擔是服務的Region數量,
因此,在0.94版本中,load balancing的機制十分簡單,
只根據RegionServer上Region的數量決定是否搬移Region.
因此,當load balancing執行時,將進行以下的程序:
1 計算每一台RegionServer上平均的Region數量
2 計算允許的Region數量區間,公式如下:
[floor(average * (1-slop)), ceil(average * (1+slop))]
其中slop是一個可以調整的參數( hbase.regions.slop),預設的值是0.2
3 如果RegionServer上的Region數量超出區間,
從擁有最多Region的RegionServer上把多出的Region
搬移到最少負擔的RegionServer上
4 重複3的動作,直到所有RegionServer上的Region都落在允許的區間中
5 隔一段時間後重新確認(hbase.balancer.period),預設間隔是5分鐘
參考資料:
http://hbase.apache.org/apidocs/org/apache/hadoop/hbase/master/balancer/SimpleLoadBalancer.html
http://www.searchtb.com/2012/05/hbase_loadbalance_plugins.html
留言
張貼留言