首页 > 其他分享 >hdfs disk balancer 磁盘均衡器

hdfs disk balancer 磁盘均衡器

时间:2023-03-31 12:45:29浏览次数:69  
标签:hdfs hadoop01 balancer 均衡器 磁盘 disk 数据

目录

1、背景

在我们的hadoop集群运行一段过程中,由于多种原因,数据在DataNade的磁盘之间的分布可能是不均匀。比如: 我们刚刚给某个DataNode新增加了一块磁盘或者集群上存在大批量的write & deltete操作等灯。那么有没有一种工具,能够使单个DataNode中的多个磁盘的数据均衡呢?借助Hadoop提供的Diskbalancer命令行工具可以实现。

2、hdfs balancer和 hdfs disk balancer有何不同?

hdfs balancer: 是为了集群中DataNode的数据均衡,即针对多个DataNode的。
hdfs balancer

hdfs disk balancer: 是为了使单台DataNode中的多个磁盘中的数据均衡。
hdfs disk balancer

注意: 目前DiskBalancer不支持跨存储介质(SSDDISK等)的数据转移,所以磁盘的均衡都是要求在一个storageType下的。因为hdfs中存在异构存储

3、操作

3.1 生成计划

[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -plan hadoop01 -out hadoop01-plan.json

-plan: 后面接的是主机名。
-out: 指定计划文件的输出位置。
生成计划

3.2 执行计划

[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -execute hadoop01-plan.json

执行计划

3.3 查询计划

[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -query hadoop01

-query 后面跟的是 主机名

查询计划

3.4 取消计划

[hadoopdeploy@hadoop01 ~]$ hdfs diskbalancer -cancel hadoop01-plan.json

取消计划

4、和disk balancer相关的配置

配置 描述
dfs.disk.balancer.enabled 此参数控制是否为集群启用diskbalancer。如果未启用,任何执行命令都将被DataNode拒绝。默认值为true。
dfs.disk.balancer.max.disk.throughputInMBperSec 这控制了diskbalancer在复制数据时消耗的最大磁盘带宽。如果指定了10MB之类的值,则diskbalancer平均只会复制10MB/S。默认值为10MB/S。
dfs.disk.balancer.max.disk.errors 设置能够容忍的在指定的移动过程中出现的最大错误次数,超过此阈值则失败。例如,如果一个计划有3对磁盘要在其中复制,并且第一个磁盘集遇到超过5个错误,那么我们放弃第一个副本并启动计划中的第二个副本。最大错误的默认值设置为5。
dfs.disk.balancer.block.tolerance.percent 设置磁盘之间进行数据均衡操作时,各个磁盘的数据存储量与理想状态之间的差异阈值。取值范围[1-100],默认为10。例如,各个磁盘的理想数据存储量为100 GB,此参数设置为10。那么,当目标磁盘的数据存储量达到90 GB时,则认为该磁盘的存储状态就已经达到预期。
dfs.disk.balancer.plan.threshold.percent 设置在磁盘数据均衡中可容忍的两磁盘之间的数据密度域值差,取值范围[1-100],默认为10。如果任意两个磁盘数据密度差值的绝对值超过了阈值,则说明需要对该的磁盘进行数据均衡。例如,如果一个2盘节点上的总数据为100 GB,那么磁盘均衡器计算每个磁盘上的期望值为50 GB。如果容差为10%,则单个磁盘上的数据需要大于60 GB(50 GB + 10%容差值),DiskBalancer才能开始工作。
dfs.disk.balancer.plan.valid.interval 磁盘平衡器计划有效的最大时间。支持以下后缀(不区分大小写):ms(milis)、s(sec)、m(min)、h(h)、d(day)以指定时间(例如2s、2m、1h等)。如果未指定后缀,则假定为毫秒。默认值为1d

5、额外知识点

5.1 新的block存储到那个磁盘(卷)中

当数据写入新的block时,DataNode会根据策略选择不同的磁盘来存储。

循环策略: 默认策略,将新的块均匀的分布在可用的磁盘上,可能造成数据倾斜。

可用空间策略: 选择更多可用空间(按百分比)的磁盘。可能造成在某段时间内,某个磁盘的IO压力变大。

5.2 磁盘数据密度度量标准

磁盘数据密度度量标准
上图来自 https://www.bilibili.com/video/BV11N411d7Zh/?p=81

6、参考文档

1、https://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-hdfs/HDFSDiskbalancer.html
2、https://help.aliyun.com/document_detail/467585.html
3、https://www.bilibili.com/video/BV11N411d7Zh/?p=81

标签:hdfs,hadoop01,balancer,均衡器,磁盘,disk,数据
From: https://www.cnblogs.com/huan1993/p/17275909.html

相关文章

  • HDFS Balancer负载均衡器
    目录1、背景2、什么是平衡2.1每个DataNode的利用率计算2.2集群的利用率2.3平衡3、hdfsbalancer语法4、运行一个简单的balance案例4.1设置平衡数据传输带宽4.2执行ban......
  • disk2vhd工具迁移Server2008R2过程注意事项
    第一步:使用disk2vhd工具1、官网下载最新版本;2、如果报错尝试兼容性运行;3、存储位置可以使用网络存储位置;第二步:hyperV下面创建虚拟机1、按照常规步骤创建,选择【第一代......
  • [Algorithm] Disk height (DP + back tracking)
    You'regivenanon-emptyarrayofarrayswhereeachsubarrayholdsthreeintegersandrepresentsadisk.Theseintegersdenoteeachdisk'swidth,depth,......
  • 用DiskGenius打开虚拟机磁盘文件vmdk的方法
    如何用DiskGenius打开虚拟机磁盘文件vmdk当然此方法也适合虚拟机无法正常启动,但虚拟机里重要文件时可以用此方法将文件复制出来.1、启动DiskGenius分区工具,根据图上点击......
  • fdisk 格式化磁盘
    fdisk/dev/sdb新建分区格式化分区mkfs.xfs/dev/sdb1挂载  加入/etc/fstab实现开机自动挂载......
  • hdfs的异构存储
    目录1背景2hdfs异构存储类型和存储策略2.1hdfs支持的存储类型2.2hdfs如何知道数据存储目录是那种存储类型2.3存储策略2.3.1在hdfs中支持如下存储策略2.3.2存储策略......
  • 网络系统管理Linux环境——14.StorageSrv之DISK
    题目要求服务器AppSrv上的工作任务1. DISK添加大小均为10G的虚拟磁盘,配置raid-5磁盘。创建LVM命名为/dev/vg01/lv01,大小为100G,格式化为ext4,挂在到本地目录/webdata,在分区......
  • HDFS分布式文件系统
    目录1️⃣、HDFS的概述1.1、HDFS产出背景及定义1.2、HDFS优缺点1.3、HDFS组成架构1.4、HDFS文件块大小(面试重点)2️⃣、HDFS的Shell操作2.1、基本语法2.2、命令大全2.3、常用命......
  • 限制可以访问AKS负载均衡器服务的IP地址
    今天主要给大家介绍如何使用NSG来限制可以访问AKS负载均衡器服务的IP地址。部署过AKS的朋友应该都清楚,当我们部署AKS集群的时候,系统会默认帮我们创建一个LoadBalancer资源,......
  • 使用 fdisk 工具製作一個2個分區的鏡像文件
    fdisk是一个用于磁盘分区的命令行工具,可以用来创建、删除、编辑、查看磁盘分区表。在Linux系统中,它是一个非常常用的工具。 以下是一些常用的fdisk命令:......