tft每日頭條

 > 生活

 > hdfs如何分塊

hdfs如何分塊

生活 更新时间:2024-07-24 03:19:43
背景

HDFS數據可能并不總是在DataNode之間均勻分布。一個常見的原因是向現有群集中添加了新的DataNode。HDFS提供了一個Balancer程序,分析block放置信息并且在整個DataNode節點之間平衡數據,直到被視為平衡為止。

所謂的平衡指的是每個DataNode的利用率(節點上已用空間與節點總容量之比)與集群的利用率(集群上已用空間與集群總容量的比)相差不超過給定阈值百分比。 平衡器無法在單個DataNode上的各個卷之間進行平衡。

hdfs如何分塊(HDFSBlock負載平衡器Balancer)1

平衡前和平衡後對比圖

命令行配置和運行

hdfs如何分塊(HDFSBlock負載平衡器Balancer)2

-threshold 10 //集群平衡的條件,datanode間磁盤使用率相差阈值,區間選擇:0~100

-policy datanode //平衡策略,默認為datanode, 如果datanode平衡,則集群已平衡。

-exclude -f /tmp/ip1.txt //默認為空,指定該部分ip不參與balance, -f:指定輸入為文件

-include -f /tmp/ip2.txt //默認為空,隻允許該部分ip參與balance,-f:指定輸入為文件

-idleiterations 5 //疊代 5

設置平衡數據傳輸帶寬

命令:hdfs dfsadmin -setBalancerbandwidth newbandwidth

其中newbandwidth是每個DataNode在平衡操作期間可以使用的最大網絡帶寬量,以每秒字節數為單位。

比如:hdfs dfsadmin -setBalancerBandwidth 104857600

默認運行balancer

命令:hdfs balancer

此時将會以默認參數進行數據塊的平衡操作。

修改阈值運行balancer

命令:hdfs balancer -threshold 5

Balancer将以阈值5%運行(默認值10%),這意味着程序将确保每個DataNode上的磁盤使用量與群集中的總體使用量相差不超過5%。例如,如果集群中所有DataNode的總體使用率是集群磁盤總存儲容量的40%,則程序将确保每個DataNode的磁盤使用率在該DataNode磁盤存儲容量的35%至45%之間。

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved