HDFS负载均衡器

Posted ItStar

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDFS负载均衡器相关的知识,希望对你有一定的参考价值。



    Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,例如:当集群内新增、删除节点,或者某个节点机器内硬盘存储达到饱和值。当数据不平衡时,Map任务可能会分配到没有存储数据的机器,这将导致网络带宽的消耗,也无法很好的进行本地计算。


    当HDFS负载不均衡时,需要对HDFS进行数据的负载均衡调整,即对各节点机器上数据的存储分布进行调整。从而,让数据均匀的分布在各个DataNode上,均衡IO性能,防止热点的发生。进行数据的负载均衡调整,必须要满足如下原则:


1. 数据平衡不能导致数据块减少,数据块备份丢失

2. 管理员可以中止数据平衡进程

3. 每次移动的数据量以及占用的网络资源,必须是可控的

4. 数据均衡过程,不能影响namenode的正常工作





HDFS负载均衡器

使用HDFS自动负载均衡脚本



HDFS负载均衡器

 在Hadoop中,包含一个start-balancer.sh脚本,通过运行这个工具,启动HDFS数据均衡服务。该工具可以做到热插拔,即无须重启计算机和 Hadoop 服务。Hadoop/bin目录下的start−balancer.sh脚本就是该任务的启动脚本。启动命令为:

bin/start-balancer.sh –threshold

影响Balancer的几个参数:

-threshold

默认设置:10,参数取值范围:0-100

参数含义:判断集群是否平衡的阈值。理论上,该参数设置的越小,整个集群就越平衡

dfs.balance.bandwidthPerSec

默认设置:10485761M/S

参数含义:Balancer运行时允许占用的带宽

示例如下:


#启动数据均衡,默认阈值为 10%$Hadoop_home/bin/start-balancer.sh
#启动数据均衡,阈值 5%bin/start-balancer.sh -threshold 5
#停止数据均衡$Hadoop_home/bin/stop-balancer.sh在hdfs-site.xml文件中可以设置数据均衡占用的网络带宽限制
<property> <name>dfs.balance.bandwidthPerSec</name> <value>1048576</value> <description> Specifies the maximum bandwidth that each datanode can utilize for the balancing purpose in term of the number of bytes per second. </description></property>
HDFS负载均衡器


测试:

现有3个节点:

HDFS负载均衡器

新增加一个节点:

HDFS负载均衡器

启动负载均衡后的日志:

HDFS负载均衡器

启动负载均衡的web页面:

HDFS负载均衡器

END





以上是关于HDFS负载均衡器的主要内容,如果未能解决你的问题,请参考以下文章

实战!HDFS集群负载不均衡问题

nginx如何做到TCP的负载均衡

nginx如何做到TCP的负载均衡

AWS 负载均衡器运行状况检查:运行状况检查失败,代码如下:[301]

HDFS 原理架构与特性介绍

HDFS 原理架构与特性介绍