閱識風云是華為云資訊大咖,擅長將復雜資訊多元化呈現,其出品的一張圖(云圖說)、深入淺出的博文(云小課)或短視頻(云視廳)總有一款能讓您快速上手華為云,更多精彩內容請單擊此處,
摘要:當HDFS集群出現DataNode節點間磁盤利用率不平衡時,會導致MapReduce應用程式無法很好地利用本地計算的優勢、資料節點之間無法達到更好的網路帶寬使用率等問題,因此管理員需要定期檢查并保持DataNode資料平衡,
本文分享自華為云社區《【云小課】EI第43課 MRS基礎操作之配置DataNode容量均衡》,原文作者:閱識風云
HDFS集群可能出現DataNode節點間磁盤利用率不平衡的情況,比如集群中添加新資料節點的場景,如果HDFS出現資料不平衡的狀況,可能導致多種問題,比如MapReduce應用程式無法很好地利用本地計算的優勢、資料節點之間無法達到更好的網路帶寬使用率或節點磁盤無法利用等等,所以系統管理員需要定期檢查并保持DataNode資料平衡,
HDFS提供了一個容量均衡程式Balancer,通過運行這個程式,可以使得HDFS集群達到一個平衡的狀態,使各DataNode磁盤使用率與HDFS集群磁盤使用率的偏差不超過閾值,如下圖1和圖2分別是Balance前后DataNode的磁盤使用率變化,
圖1 執行均衡操作前DataNode的磁盤使用率
圖2 執行均衡操作后DataNode的磁盤使用率
均衡操作時間估算受兩個因素影響:
- 需要遷移的總資料量:
每個DataNode節點的資料量應大于(平均使用率-閾值)*平均資料量,小于(平均使用率+閾值)*平均資料量,若實際資料量小于最小值或大于最大值即存在不平衡,系統選擇所有DataNode節點中偏差最多的資料量作為遷移的總資料量, - Balancer的遷移是按迭代(iteration)方式串行順序處理的,每個iteration遷移資料量不超過10GB,每個iteration重新計算使用率的情況,
因此針對集群情況,可以大概估算每個iteration耗費的時間(可以通過執行Balancer的日志觀察到每次iteration的時間),并用總資料量除以10GB估算任務執行時間,
由于按iteration處理,Balancer可以隨時啟動或者停止,
配置DataNode容量均衡
參考MRS快速入門的“創建集群”章節購買一個MRS集群,例如購買MRS 3.1.0版本集群,集群包含HDFS等組件,該集群已開啟Kerberos認證,
已安裝HDFS客戶端,可參考MRS用戶指南的“安裝客戶端”章節,例如客戶端安裝目錄為“/opt/client”,
1.使用客戶端安裝用戶登錄客戶端所在節點,執行命令切換到客戶端安裝目錄,例如“/opt/client”,
cd /opt/client
2.執行以下命令配置環境變數,
source bigdata_env
3.執行以下命令認證hdfs身份,hdfs用戶默認密碼請參考MRS用戶指南中的“用戶帳號一覽表”章節獲取,首次認證需要修改密碼,
kinit hdfs
4.執行以下命令,啟動Balance任務,
bash /opt/client/HDFS/hadoop/sbin/start-balancer.sh -threshold <threshold of balancer>
<threshold of balancer>:表示HDFS資料達到平衡狀態時DataNode磁盤使用率偏差值,各個DataNode節點磁盤的使用率和整體HDFS集群的磁盤空間平均使用率偏差小于此閾值時,系統認為HDFS集群已經達到了平衡的狀態并結束Balance任務,
例如,需要設定偏差率為5%,則執行:
bash /opt/client/HDFS/hadoop/sbin/start-balancer.sh -threshold 5
如果需要停止Balance任務,請執行以下命令:
bash /opt/client/HDFS/hadoop/sbin/stop-balancer.sh
5.用戶在執行了步驟4的腳本后,會在客戶端安裝目錄“/opt/client/HDFS/hadoop/logs”目錄下生成名為hadoop-root-balancer-主機名.out日志,執行以下命令打開該日志,
vi /opt/client/HDFS/hadoop/logs/hadoop-root-balancer-主機名.out
日志出現“Balancing took xxx seconds”資訊表示均衡操作已完成,
Time Stamp Iteration# Bytes Already Moved Bytes Left To Move Bytes Being Moved NameNode The cluster is balanced. Exiting... May 25, 2022 5:01:21 PM 0 0 B 0 B 0 B hdfs://hacluster May 25, 2022 5:01:21 PM Balancing took 1.456 seconds ......
可以看到如下欄位資訊:
- Time Stamp:時間戳
- Bytes Already Moved:已經移動的位元組數
- Bytes Left To Move:待移動的位元組數
- Bytes Being Moved:正在移動的位元組數
好了,本期云小課就介紹到這里,快去體驗MapReduce(MRS)更多功能吧!猛戳這里
點擊關注,第一時間了解華為云新鮮技術~
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/544057.html
標籤:大數據
