91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

HBase負載均衡和性能指標的示例分析

發布時間:2021-12-09 10:45:07 來源:億速云 閱讀:254 作者:小新 欄目:大數據

小編給大家分享一下HBase負載均衡和性能指標的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

HBase負載均衡和性能指標

在分布式系統中,負載均衡是一個非常重要的功能,HBase通過Region的數量實現負載均衡,即通過hbase.master.loadbalancer.class實現自定義負載均衡算法。

內容

HBase系統負載均衡是一個周期性的操作,通過負載均衡來均勻分配Region到各個RegionServer上,通過hbase.balancer.period屬性來控制負載均衡的時間間隔,默認是5分鐘。觸發負載均衡操作是有條件的,但是如果發生以下情況則不會觸發負載均衡操作:

l 負載均衡自動操作balance_switch關閉,即:balance_switch false;

l HBase Master節點正在初始化操作;

l HBase集群中正在執行RIT,即Region正在遷移中;

l HBase集群正在處理離線的RegionServer;

負載均衡算法

HBase執行負載均衡操作的時候,如何判斷各個RegionServer節點上的Region個數是否均衡,這里通過以下步驟來判斷:

l 計算均衡值的區間范圍,通過總Region個數以及RegionServer節點個數,算出平均Region個數,然后在此基礎上計算最小值和最大值;

l 遍歷超過Region最大值的RegionServer節點,將該節點上的Region值遷移出去,直到該節點的Region個數小于等于最大值的Region;

l 遍歷低于Region最小值的RegionServer節點,分配集群中的Region到這些RegionServer上,直到大于等于最小值的Region;

l 負責上述操作,直到集群中所有的RegionServer上的Region個數在最小值與最大值之間,集群才算到達負載均衡,之后,即使再次手動執行均衡命令,HBase底層邏輯判斷會執行忽略操作。

算法流程實例

下面筆者通過實際的應用場景來給大家剖析HBase負載均衡算法的實現流程。舉個例子,假如我們當前有一個5臺節點規模的HBase集群(包含Master和RegionServer),其中2臺Master和3臺RegionServer組成,每臺RegionServer上的Region個數,如圖所示:

 HBase負載均衡和性能指標的示例分析

圖1

執行負載均衡操作之前,首先計算集群中總的Region個數,當前實例中集群中的Region總個數為175+56+99=330,然后計算每個RegionServer需要容納的Region平均值,計算結果:

平均值(110) = 總Region個數(330) / RegionServers總數(3)

計算最小值和最大值來判斷HBase集群是否需要進行負載均衡操作,計算公式:

# hbase.regions.slop 權重值,默認為0.2
最小值 = Math.floor(平均值 * (1-0.2))
最大值 = Math.ceil(平均值 * (1+0.2))

HBase集群如果判斷各個RegionServer中的最小Region個數大于計算后的最小值,并且最大Region個數小于最大值,這是直接返回不會觸發負載均衡操作。根據實例中給出的Region數,計算得出最小值Region為88,最大值Region為120。

由于實例中RegionServer2的Region個數為56,小于最小值Region數88,而RegionServer1的Region個數為175,大于了最大值Region數120,所以需要負載均衡操作。

HBase系統提供管理員命令來操作負載均衡,具體操作命令:

# 使用hbase shell命令進入到HBase控制臺,然后開啟自動執行負載均衡
hbase(main):001:0> balance_switch true

balance_switch命令底層實現balance_switch.rb和admin.rb文件源碼:

 HBase負載均衡和性能指標的示例分析

圖2

此命令輸出的是之前負載均衡器balancer的開關設置,再看balance_switch命令處理實現源碼:

 HBase負載均衡和性能指標的示例分析

圖3

此時HBase負載均衡自動操作就開啟完畢,但是如果我們需要立即均衡集群的Region個數怎么辦?這里HBase也提供管理命令,通過balancer命令來實現,操作命令:

hbase(main):001:0> balancer

balancer命令實現查看balancer.rb和admin.rb文件源碼:

 HBase負載均衡和性能指標的示例分析

圖4

 HBase負載均衡和性能指標的示例分析

圖5

該命令通過調用負載均衡器balancer的balanceCluster()方法生成負載均衡計劃執行集群的負載均衡操作,Master實現負載均衡底層源碼:

 HBase負載均衡和性能指標的示例分析

圖6-1

 HBase負載均衡和性能指標的示例分析

圖6-2

但是這樣每次手動執行,每次均衡的個數不一定能滿足要求,那么我們可以通過封裝該命令,用腳本來調度執行,具體實現代碼:

HBase負載均衡和性能指標的示例分析 

圖7

此腳本默認執行20次,可以通過輸入整型參數來自定義執行次數。

當HBase集群檢查完所有的RegionServer上的Region個數已打要求,那么此時集群的負載均衡操作就已經完成了。如果沒有達到要求,可以再次執行上述腳本,直到所有的Region個數在最小值和最大值之間為止。當HBase集群中所有的RegionServer完成負載均衡后,實例中的各個RegionServer上的Region個數分布,如圖所示:

 HBase負載均衡和性能指標的示例分析

圖8

此時各個RegionServer節點上的Region個數均在最小值和最大值范圍內,HBase集群各個RegionServer節點上的Region處理均衡狀態。

性能指標

HBase系統有一個非常重要的性能指標,那就是集群處理請求的延時。HBase系統為了反應集群內部處理請求所耗費的時間提供一個工具類即:

org.apache.hadoop.hbase.tool.Canary

此類主要用戶檢查HBase系統的耗時狀態。如果不知道使用方法,通過help命令來查看具體的用法,操作命令:

hbase org.apache.hadoop.hbase.tool.Canary -help

(1)查看集群中每個表中每個Region的耗時情況

hbase org.apache.hadoop.hbase.tool.Canary

(2) 查看money表中每個Region的耗時情況,多個表之間使用空格分割

# 查看money表和person表
hbase org.apache.hadoop.hbase.tool.Canary money person

(3) 查看每個RegionServer的耗時情況

hbase org.apache.hadoop.hbase.tool.Canary -regionserver dn1

通常情況下我們比較關注每個RegionServer節點的耗時情況,將該命令封裝一下,然后打印集群中每個RegionServer的耗時情況,腳本實現:

 HBase負載均衡和性能指標的示例分析

以上是“HBase負載均衡和性能指標的示例分析”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

沈阳市| 剑河县| 界首市| 油尖旺区| 深泽县| 南郑县| 宁化县| 出国| 泰和县| 五台县| 涪陵区| 隆林| 陵川县| 壶关县| 广昌县| 宝兴县| 保亭| 高清| 彰武县| 永吉县| 扎鲁特旗| 平和县| 宜兴市| 佛学| 柯坪县| 宜君县| 岑巩县| 沾化县| 桐庐县| 台安县| 昂仁县| 德安县| 龙胜| 马山县| 容城县| 黔西县| 东兰县| 介休市| 荆州市| 栾城县| 霞浦县|