首页 > 其他分享 >Hadoop HDFS负载均衡

Hadoop HDFS负载均衡

时间:2022-11-01 19:23:08浏览次数:52  
标签:HDFS 负载 Hadoop usedSpace DataNode 均衡 数据

Hadoop 分布式文件系统(Hadoop Distributed File System),简称 HDFS,被设计成适合运行在通用硬件上的分布式文件系统。它和现有的分布式文件系统有很多的共同点。HDFS 是一个高容错性的文件系统,提供高吞吐量的数据访问,非常适合大规模数据集上的应用。

HDFS副本摆放策略

第一副本:放置在上传文件的DataNode上;如果是集群外提交,则随机挑选一台磁盘不太慢、CPU不太忙的节点上;

第二副本:放置在于第一个副本不同的机架的节点上;

第三副本:与第二个副本相同机架的不同节点上;

如果还有更多的副本:随机放在节点中;

需要注意的是:

  • HDFS中存储的文件的副本数由上传文件时设置的副本数决定。无论以后怎么更改系统副本系数,这个文件的副本数都不会改变;
  • 在上传文件时优先使用启动命令中指定的副本数,如果启动命令中没有指定则使用hdfs-site.xml中dfs.replication设置的默认值;

HDFS负载均衡

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

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

  • 数据平衡不能导致数据块减少,数据块备份丢失
  • 管理员可以中止数据平衡进程
  • 每次移动的数据量以及占用的网络资源,必须是可控的
  • 数据均衡过程,不能影响namenode的正常工作

Hadoop HDFS数据负载均衡原理

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

步骤分析如下:

  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组移动。四个组定义如下:

  • Over组:此组中的DataNode的均满足

DataNode_usedSpace_percent > Cluster_usedSpace_percent + threshold

  • Above组:此组中的DataNode的均满足

Cluster_usedSpace_percent + threshold > DataNode_ usedSpace _percent > Cluster_usedSpace_percent

  • Below组:此组中的DataNode的均满足

Cluster_usedSpace_percent > DataNode_ usedSpace_percent > Cluster_ usedSpace_percent – threshold

  • Under组:此组中的DataNode的均满足

Cluster_usedSpace_percent – threshold > DataNode_usedSpace_percent

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

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

影响Balancer的几个参数:

  • -threshold
    • 默认设置:10,参数取值范围:0-100
    • 参数含义:判断集群是否平衡的阈值。理论上,该参数设置的越小,整个集群就越平衡
  • dfs.balance.bandwidthPerSec
    • 默认设置:1048576(1M/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,负载,Hadoop,usedSpace,DataNode,均衡,数据
From: https://www.cnblogs.com/sx66/p/16848873.html

相关文章

  • 阿里云配置负载均衡快速入门
    慎选监听配置的高级配置“开启会话保持”功能,单机测试负截均衡,看不到调度IP切换效果负载均衡从诞生到现在也随着网络业务的变化而不断的进化,逐渐发展成为现在云化的负......
  • WSL 中搭建 hadoop/hive 环境后,在 windows 宿主机下连接 hive 被拒绝
    报错只有:java.net.ConnectException:Connectionrefused这样简短的几行。其真实原因是(在windows11下),WSL有自己的(内部)IP地址。在WSL下执行ipaddr,然后在cmd下......
  • hadoop配置day01
    hadoop安装jdk配置文件:sudovim/etc/profile配置文件:exportJAVA_HOME=/home/hadoop/jvm/jdk1.8.0_341exportJRE_HOME=${JAVA_HOME}/jreexportCLASSPATH=.:${JAV......
  • SpringCloud学习七:Feign负载均衡
    文章目录​​一、概念​​​​二、用处​​​​2.1简单​​​​2.2Feign集成了Ribbon​​​​三、实验​​​​第一步:创建客户端项目:springcloud-consumer-dept-feign​​......
  • hadoop的java.lang.InterruptedException
     运行hadoop的时候,爆出来java.lang.InterruptedException:[root@node-1text]#hadoopjarhadoop-04-1.0-SNAPSHOT.jar19/07/2120:41:48INFOclient.RMProxy:Connecting......
  • Hadoop搭建的时候,安装包编译为什么要编译?
    cdh版本编译 jar下载问题。因为官方只提供源码包 需要自己编译。软件运行某些特性跟操作系统相关 结合具体操作系统编译符合它版本的软件。修改源码中某些属性。编译......
  • Hadoop_1
    Hadoop1hadoop是什么狭义上特指Apache的一款软件java语言开发开源软件大数据问题解决处理平台HadoopHDFS:分布式文件系统解决了海量数据存储问题HadoopMapReduce:分......
  • Hadoop MapReduce
    HadoopMapReduce理解mapreduce思想核心:分而治之先分再合两个阶段map阶段(分):如果任何可以拆分并且没有依赖那么就把复杂的任务拆分成小任务拆分成小任务之后可以并行计算......
  • 一、Hadoop企业优化
    MapReduce跑的慢的原因Mapreduce程序效率的瓶颈在于两点:1)计算机性能  CPU、内存、磁盘健康、网络2)I/O操作优化(1)数据倾斜(2)map和reduce数设置不合理(3)map运行时间太长,导......
  • hadoop hdfs
    hadoophdfshdfs特性首先,它是一个文件系统用于存储文件的提供统一命名空间的目录树结构便于用户操作文件系统其次,它是一个分布式文件系统分布式意味着多台机器当中......