hdoop之负载均衡

文章目录


前言

老师上课的笔记


提示:以下是本篇文章正文内容,下面案例可供参考


Hadoop的HDFS集群非常容易出现机器与机器之间磁盘利用率不平衡的情况,例如:当集群内新增、删除节点,或者某个节点机器内硬盘存储达到饱和值。当数据不平衡时,Map任务可能会分配到没有存储数据的机器,这将导致网络带宽的消耗,也无法很好的进行本地计算。 当HDFS负载不均衡时,需要对HDFS进行数据的负载均衡调整,即对各节点机器上数据的存储分布进行调整。从而,让数据均匀的分布在各个DataNode上,均衡IO性能,防止热点的发生。进行数据的负载均衡调整,必须要满足如下原则:

一、负载均衡

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

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

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

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

二、该数据均衡算法每次迭代的逻辑

数据均衡过程的核心是一个数据均衡算法,该数据均衡算法将不断迭代数据均衡逻辑,直至集群内数据均衡为止。

1.数据均衡服务(Rebalancing Server)首先要求 NameNode 生成 DataNode 数据分布分析报告,获取每个DataNode磁盘使用情况

2 Rebalancing Server汇总需要移动的数据分布情况,计算具体数据块迁移路线图。数据块迁移路线图,确保网络内最短路径

3 开始数据块迁移任务,Proxy Source Data Node复制一块需要移动数据块

4 将复制的数据块复制到目标DataNode上

5 删除原始数据块

6 目标DataNode向Proxy Source Data Node确认该数据块迁移完成

7 Proxy Source Data Node向Rebalancing Server确认本次数据块迁移完成。然后继续执行这个过程,直至集群达到数据均衡标准

三、DataNode分组

在第2步中,HDFS会把当前的DataNode节点,根据阈值的设定情况划分到Over、Above、Below、Under四个组中。在移动数据块的时候,Over组、Above组中的块向Below组、Under组移动。四个组定义如下:
在这里插入图片描述

1.Over组:此组中的DataNode的均满足

DataNode_usedSpace_percent > Cluster_usedSpace_percent + threshold


2.Above组:此组中的DataNode的均满足

Cluster_usedSpace_percent + threshold > DataNode_ usedSpace _percent > Cluster_usedSpace_percent


3.Below组:此组中的DataNode的均满足

Cluster_usedSpace_percent > DataNode_ usedSpace_percent > Cluster_ usedSpace_percent – threshold


4.Under组:此组中的DataNode的均满足

Cluster_usedSpace_percent – threshold > DataNode_usedSpace_percent

四、HDFS 数据自动平衡脚本使用方法

**不怕数据大,怕数据倾斜。 **

1.start-balancer.sh –threshold

-threshold:默认设置:10,参数取值范围:0-100
参数含义:判断集群是否平衡的阈值。理论上,该参数设置的越小,整个集群就越平衡


2.dfs.balance.bandwidthPerSec

默认设置:1048576(1M/S)
参数含义:Balancer运行时允许占用的带宽

3.stop-balancer.sh

五、hdfs-site.xml文件中设置数据均衡占用的网络带宽限制

<property>
    <name>dfs.balance.bandwidthPerSec</name>
    <value>1048576</value>
    </property>

六、以定时任务来实现定时的负载均衡

00 22 * * 5 hdfs balancer -Threshold 5 >>/home/logs/balancer_`date +"\%Y\%m\%d"`.log 2>&1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值