计算
弹性云服务器 ECS
Flexus云服务
裸金属服务器 BMS
弹性伸缩 AS
镜像服务 IMS
专属主机 DeH
函数工作流 FunctionGraph
云手机服务器 CPH
Huawei Cloud EulerOS
网络
虚拟私有云 VPC
弹性公网IP EIP
虚拟专用网络 VPN
弹性负载均衡 ELB
NAT网关 NAT
云专线 DC
VPC终端节点 VPCEP
云连接 CC
企业路由器 ER
企业交换机 ESW
全球加速 GA
安全与合规
安全技术与应用
Web应用防火墙 WAF
企业主机安全 HSS
云防火墙 CFW
安全云脑 SecMaster
DDoS防护 AAD
数据加密服务 DEW
数据库安全服务 DBSS
云堡垒机 CBH
数据安全中心 DSC
云证书管理服务 CCM
边缘安全 EdgeSec
威胁检测服务 MTD
CDN与智能边缘
内容分发网络 CDN
CloudPond云服务
智能边缘云 IEC
迁移
主机迁移服务 SMS
对象存储迁移服务 OMS
云数据迁移 CDM
迁移中心 MGC
大数据
MapReduce服务 MRS
数据湖探索 DLI
表格存储服务 CloudTable
云搜索服务 CSS
数据接入服务 DIS
数据仓库服务 GaussDB(DWS)
数据治理中心 DataArts Studio
数据可视化 DLV
数据湖工厂 DLF
湖仓构建 LakeFormation
企业应用
云桌面 Workspace
应用与数据集成平台 ROMA Connect
云解析服务 DNS
专属云
专属计算集群 DCC
IoT物联网
IoT物联网
设备接入 IoTDA
智能边缘平台 IEF
用户服务
账号中心
费用中心
成本中心
资源中心
企业管理
工单管理
国际站常见问题
ICP备案
我的凭证
支持计划
客户运营能力
合作伙伴支持计划
专业服务
区块链
区块链服务 BCS
Web3节点引擎服务 NES
解决方案
SAP
高性能计算 HPC
视频
视频直播 Live
视频点播 VOD
媒体处理 MPC
实时音视频 SparkRTC
数字内容生产线 MetaStudio
存储
对象存储服务 OBS
云硬盘 EVS
云备份 CBR
存储容灾服务 SDRS
高性能弹性文件服务 SFS Turbo
弹性文件服务 SFS
云硬盘备份 VBS
云服务器备份 CSBS
数据快递服务 DES
专属分布式存储服务 DSS
容器
云容器引擎 CCE
容器镜像服务 SWR
应用服务网格 ASM
华为云UCS
云容器实例 CCI
管理与监管
云监控服务 CES
统一身份认证服务 IAM
资源编排服务 RFS
云审计服务 CTS
标签管理服务 TMS
云日志服务 LTS
配置审计 Config
资源访问管理 RAM
消息通知服务 SMN
应用运维管理 AOM
应用性能管理 APM
组织 Organizations
优化顾问 OA
IAM 身份中心
云运维中心 COC
资源治理中心 RGC
应用身份管理服务 OneAccess
数据库
云数据库 RDS
文档数据库服务 DDS
数据管理服务 DAS
数据复制服务 DRS
云数据库 GeminiDB
云数据库 GaussDB
分布式数据库中间件 DDM
数据库和应用迁移 UGO
云数据库 TaurusDB
人工智能
人脸识别服务 FRS
图引擎服务 GES
图像识别 Image
内容审核 Moderation
文字识别 OCR
AI开发平台ModelArts
图像搜索 ImageSearch
对话机器人服务 CBS
华为HiLens
视频智能分析服务 VIAS
语音交互服务 SIS
应用中间件
分布式缓存服务 DCS
API网关 APIG
微服务引擎 CSE
分布式消息服务Kafka版
分布式消息服务RabbitMQ版
分布式消息服务RocketMQ版
多活高可用服务 MAS
事件网格 EG
企业协同
华为云会议 Meeting
云通信
消息&短信 MSGSMS
云生态
合作伙伴中心
云商店
开发者工具
SDK开发指南
API签名指南
Terraform
华为云命令行工具服务 KooCLI
其他
产品价格详情
系统权限
管理控制台
客户关联华为云合作伙伴须知
消息中心
公共问题
开发与运维
应用管理与运维平台 ServiceStage
软件开发生产线 CodeArts
需求管理 CodeArts Req
部署 CodeArts Deploy
性能测试 CodeArts PerfTest
编译构建 CodeArts Build
流水线 CodeArts Pipeline
制品仓库 CodeArts Artifact
测试计划 CodeArts TestPlan
代码检查 CodeArts Check
代码托管 CodeArts Repo
云应用引擎 CAE
开天aPaaS
云消息服务 KooMessage
云手机服务 KooPhone
云空间服务 KooDrive
本文导读

配置HDFS DiskBalancer

更新时间:2024-05-11 GMT+08:00

配置场景

DiskBalancer是一个在线磁盘均衡器,旨在根据各种指标重新平衡正在运行的DataNode上的磁盘数据。工作方式与HDFS的Balancer工具类似。不同的是,HDFS Balancer工具用于DataNode节点间的数据均衡,而HDFS DiskBalancer用于单个DataNode节点上各磁盘之间的数据均衡。

长时间运行的集群会因为曾经删除过大量的文件,或者集群中的节点做磁盘扩容等操作导致节点上出现磁盘间数据不均衡的现象。磁盘间数据不均衡会引起HDFS整体并发读写性能的下降或者因为不恰当的HDFS写策略导致业务故障。此时需要平衡节点磁盘间的数据密度,防止异构的小磁盘成为该节点的性能瓶颈。

说明:

本章节适用于MRS 3.x及后续版本。

配置描述

请参考修改集群服务配置参数,进入HDFS的“全部配置”页面,在搜索框中输入参数名称。

表1 参数说明

参数

描述

默认值

dfs.disk.balancer.auto.enabled

是否开启自动执行HDFS diskbalancer特性。默认值为“false”,表示关闭该特性。

false

dfs.disk.balancer.auto.cron.expression

HDFS 磁盘均衡操作的CRON表达式,用于控制均衡操作的开始时间。仅当dfs.disk.balancer.auto.enabled设置为true时才有效。默认值“0 1 * * 6”表示在每周六的1点执行任务。表达式的具体含义可参见表2。默认值表示每周六一点执行。

0 1 * * 6

dfs.disk.balancer.max.disk.throughputInMBperSec

执行磁盘数据均衡时可使用的最大磁盘带宽。单位为MB/s,默认值为10,可依据集群的实际磁盘条件设置。

10

dfs.disk.balancer.max.disk.errors

设置能够容忍的在指定的移动过程中出现的最大错误次数,超过此阈值则移动失败。

5

dfs.disk.balancer.block.tolerance.percent

设置磁盘之间进行数据均衡操作时,各个磁盘的数据存储量与理想状态之间的差异阈值。例如,各个磁盘的理想数据存储量为1TB,此参数设置为10。那么,当目标磁盘的数据存储量达到900GB时,就认为该磁盘的存储状态就已经足够好了。取值范围[1-100]。

10

dfs.disk.balancer.plan.threshold.percent

设置在磁盘数据均衡中可容忍的两磁盘之间的数据密度阈值差。如果任意两个磁盘数据密度差值的绝对值超过了此阈值,意味着对应的磁盘应该进行数据均衡。取值范围[1-100]。

10

dfs.disk.balancer.top.nodes.number

该参数用来指定集群中需要执行磁盘数据均衡的Top N 节点。

5

使用此功能时,需要先将参数dfs.disk.balancer.auto.enabled设置为true,并配置合理的CRON表达式。其它参数依据集群状况设置。

表2 CRON表达式解释

说明

第1列

分钟,参数值为0~59。

第2列

小时,参数值为0~23。

第3列

日期,参数值为1~31。

第4列

月份,参数值为1~12。

第5列

星期,参数值为0~6,0表示星期日。

使用限制

  1. 只支持同类型磁盘之间的数据移动,例如SSD->SSD,DISK->DISK等。
  2. 执行该特性会占用涉及节点的磁盘IO资源、网络带宽资源,请尽量在业务不繁忙的时候使用。
  3. 参数dfs.disk.balancer.top.nodes.number指定Top N 节点返回的DataNode列表是不断重新计算的,因此不必设置的过大。
  4. 如果要在HDFS客户端通过命令行使用DiskBalancer功能,其接口如下:
    表3 DiskBalancer功能的接口说明

    命令格式

    说明

    hdfs diskbalancer -report -top <N>

    N 可以指定为大于0的整数,先利用此条命令查询集群中最需要执行磁盘数据均衡的Top N节点。

    hdfs diskbalancer -plan <Hostname| IP Address>

    此条命令可以根据传入的DN 生成一个Json文件,该文件包含了数据移动的源磁盘、目标磁盘、待移动的块等信息。同时,该命令还支持指定一些其他网络带宽参数等。

    hdfs diskbalancer -query <Hostname:$dfs.datanode.ipc.port>

    集群默认的port值为9867。此条命令可以查询当前节点上运行的DiskBalancer 任务的运行状态。

    hdfs diskbalancer -execute <planfile>

    此命令中的planfile指的是第二条命令中生成的Json文件,请使用绝对路径。

    hdfs diskbalancer -cancel <planfile>

    取消正在运行的planfile,同样需要使用绝对路径。

说明:
  • 在客户端执行此命令时,用户需要具备supergroup权限。可以使用HDFS服务的系统用户hdfs。或者在集群上创建一个具有supergroup权限的用户,再在客户端中执行此命令。
  • 表3只说明了命令接口的含义及使用方法,实际每个接口提供了更多的配置参数。具体信息可通过"hdfs diskbalancer -help <command>"命令查看。
  • 在集群运维过程中,排查性能类问题时。可查看集群的事件信息中是否有HDFS磁盘均衡任务事件发生,如果有的话。可以排查集群中是否开启了DiskBalancer。
  • 自动执行磁盘均衡的特性开启以后,会在此次数据均衡执行完成之后才会退出。无法在执行均衡中途取消本次执行任务。
  • 如果想要灵活选择某些指定节点进行数据均衡,可以在客户端手动指定执行。

我们使用cookie来确保您的高速浏览体验。继续浏览本站,即表示您同意我们使用cookie。 详情

文档反馈

文档反馈

意见反馈

0/500

标记内容

同时提交标记内容