HDFS技術之負載均衡(六)

2021-09-26 23:34:42 字數 1692 閱讀 5401

下面我將盡可能的以通俗的語言講解hdfs的負載均衡技術。

hdfs架構天生支援資料均衡策略,舉個例子:

如果某個datanode節點上的空閒空間低於特定的臨界值,按照負載均衡技術系統將會自動地將資料從這個datanode移動到其他空閒的datanode。

當對某個檔案的請求突然增加,那麼也可能啟動乙個計畫建立該檔案新的副本,並且同時重新平衡集群中的其他資料。

當hdfs負載不均衡時,需要對hdfs進行資料的負載均衡調整,即對各節點機器上資料的儲存分布進行調整,從而讓資料均勻的分布在各個datanode上,以均衡各種效能,防止「熱點」的發生:

在hadoop的bin目錄下,包含乙個start-balancer.sh指令碼,通過執行這個工具,啟動hdfs資料均衡服務。啟動命令為:

./start-balancer.sh -threshold
引數:

-threshold

預設設定:10, 引數取值範圍:0-100

引數含義:判斷集群是否平衡的閾值。從理論上說,該引數值越小整個集群就越平衡。如果機器與機器之間磁碟使用率偏差小於10%,那麼我們就認為hdfs集群已經達到了平衡狀態。

dfs.balance.bandwidthpersec

預設設定:1048576(1m/s)

引數含義:balancer執行時執行占用的頻寬

舉個例子:

# 啟動資料均衡,閾值為5%

./start-balancer.sh - threshold 5

# 停止資料均衡

./stop-balancer.sh

同時我們還可以在hdfs-site.xml檔案中設定資料均衡占用的網路頻寬限制

>

>

dfs.balance.bandwidthpersecname

>

>

1048576value

>

property

>

下面簡要說明hdfs資料均衡的邏輯流程。

負載均衡服務rebalancing server從namenode中獲取所有的datanode情況,具體包括每乙個datanode磁碟使用情況,即為上圖中的流程1. get datanode report

rebalancing server計算哪些機器需要將資料移動,哪些機器可以接受移動的資料,以及從namenode中獲取需要移動資料的分布情況,即為上圖中的流程2.get partial blockmap。

rebalancing server計算出來可以將哪一台機器的block移動到另一台機器中去,即為上圖中的流程3.copy a block。

需要移動block的機器將資料移動到目標機器上,同時刪除自己機器上的block資料,見上圖中的流程4、5、6。

rebalancing server獲取本次資料移動的執行結果,並繼續執行這個過程,一直到沒有資料可以移動或hdfs集群已經達到平衡的標準為止,即為上圖中的流程7.confirm copy。

HDFS負載均衡

hdfs負載平衡 hdfs的資料可能並不總是被均勻的置於所有的datanode中,最常見的原因是向乙個已經存在的集群新增乙個新的節點。當放置新的塊時 塊 乙個檔案的資料會被儲存為一系列的塊 namenode 在選擇datanode節點儲存這些塊之前會考慮多方面引數。一些注意事項如下 策略保證乙個塊的...

負載均衡技術之負載均衡器簡介

負載均衡器可以根據實際的響應時間制定優先順序交付決策,從而實現高效能 智慧型化流量管理,達到最佳的伺服器群效能。採用第七層應用控制還可以減少通訊高峰期的錯誤訊息,因為差錯控制和流量管理技術可以偵測到一些錯誤資訊,並透明地將會話重定向到另乙個伺服器,使使用者順利地進行使用。例如,伺服器a不可用或者資料...

負載均衡技術之負載均衡器簡介

負載均衡器可以根據實際的響應時間制定優先順序交付決策,從而實現高效能 智慧型化流量管理,達到最佳的伺服器群效能。採用第七層應用控制還可以減少通訊高峰期的錯誤訊息,因為差錯控制和流量管理技術可以偵測到一些錯誤資訊,並透明地將會話重定向到另乙個伺服器,使使用者順利地進行使用。例如,伺服器a不可用或者資料...