HDFS均衡操作的启动和退出方法
这篇文章主要介绍"HDFS均衡操作的启动和退出方法",在日常操作中,相信很多人在HDFS均衡操作的启动和退出方法问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"HDFS均衡操作的启动和退出方法"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
HDFS均衡操作的启动
使用HDFS的balancer命令,可以配置一个Threshold来平衡每一个DataNode磁盘利用率。命令如下:
start-balancer.sh -threshold 8
运行之后,会有Balancer进程出现:
上述命令设置了Threshold为8%,那么执行balancer命令的时候,首先统计所有DataNode的磁盘利用率的均值,然后判断如果某一个DataNode的磁盘利用率超过这个均值Threshold,那么将会把这个DataNode的block转移到磁盘利用率低的DataNode,这对于新节点的加入来说十分有用。Threshold的值为1到100之间,不显示的进行参数设置的话,默认是10。
范围超出之后,会有异常抛出:
java.lang.IllegalArgumentException: Numberout of range: threshold = 0.07
atorg.apache.hadoop.hdfs.server.balancer.Balancer$Cli.parse(Balancer.java:1535)
atorg.apache.hadoop.hdfs.server.balancer.Balancer$Cli.run(Balancer.java:1510)
atorg.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
atorg.apache.hadoop.hdfs.server.balancer.Balancer.main(Balancer.java:1582)
2012-12-19 16:28:33,299 ERRORorg.apache.hadoop.hdfs.server.balancer.Balancer: Exiting balancer due anexception
java.lang.IllegalArgumentException: Numberout of range: threshold = 110.0
atorg.apache.hadoop.hdfs.server.balancer.Balancer$Cli.parse(Balancer.java:1535)
atorg.apache.hadoop.hdfs.server.balancer.Balancer$Cli.run(Balancer.java:1510)
atorg.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
atorg.apache.hadoop.hdfs.server.balancer.Balancer.main(Balancer.java:1582)
如果参数值设置的越小,花费的时间就越长。使用此命令时,会反复的从磁盘使用率高的节点上,把块转移到磁盘使用率低的磁盘上,每次移动不超过10G大小,每次移动不超过20分钟。
在做均衡的时候,会对网络带宽有影响,可在配置文件中对均衡操作的带宽做限制:
Specifies themaximum bandwidth that each datanode can utilize for the balancing purpose interm of the number of bytes per second.
若不设置,则balance操作时,速度默认为1M/S大小。参数重启时生效。不允许在集群中使用多个均衡同时操作。
HDFS均衡操作的退出
除了在命令行直接使用stop-balancer.sh脚本来执行退出均衡操作之外,当发生以下几种情况时,当前执行的均衡操作也会退出:
(1)集群已经达到均衡状态;
(2)没有块可以再被移动;
(3)连续五次迭代操作时没有块移动;
(4)和NameNode通信时出现IOException;
(5)另外一个均衡操作启动;
到此,关于"HDFS均衡操作的启动和退出方法"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!