运维

动态属性重载

师成师成· 更新于 2026-09-28· 阅读 15 分钟· 0 次阅读

登录后可跨设备保存划线和私人笔记登录

Ozone 支持在不重启服务的情况下动态重新加载某些配置属性。这使运维人员能够在生产环境中调整集群行为、修改限制值并更新设置,而不会造成服务中断。

概述

当某个属性被标记为可重新配置时,你可以:

  1. 在配置文件(ozone-site.xml)中修改该属性的值
  2. 调用 reconfig 命令,将更改应用到正在运行的服务

重新配置是异步执行的,你可以检查状态以确认是否完成。

命令参考

ozone admin reconfig --service=[OM|SCM|DATANODE] --address=<ip:port|hostname:port> <operation>

选项

选项说明
--service服务类型:OM、SCM 或 DATANODE
--address目标服务器的 RPC 地址(例如 hadoop1:9862 或 192.168.1.10:9862)。除非指定了 --in-service-datanodes,否则为必填项。
--in-service-datanodes(仅限 Datanode)应用于所有 IN_SERVICE 状态的 Datanode

操作

操作说明
start异步执行重新配置
status检查重新配置任务的状态
properties列出该服务所有可重新配置的属性

可重新配置的属性

Ozone Manager(OM)

属性默认值说明
ozone.administrators-以逗号分隔的 Ozone 管理员列表
ozone.readonly.administrators-以逗号分隔的只读管理员列表
ozone.om.server.list.max.size1000list 操作的服务端最大响应大小
ozone.om.volume.listall.allowedtrue允许所有用户列出所有卷
ozone.om.follower.read.local.lease.enabledfalse为 Follower 读优化启用本地租约
ozone.om.follower.read.local.lease.lag.limit10000Follower 读取允许的最大日志延迟
ozone.om.follower.read.local.lease.time.ms5000Follower 读取的租约时间(毫秒)
ozone.key.deleting.limit.per.task50000每个任务最多删除的键数量
ozone.directory.deleting.service.interval60s目录删除服务的运行间隔
ozone.thread.number.dir.deletion10目录删除的线程数
ozone.snapshot.filtering.service.interval60s快照 SST 过滤服务的运行间隔

Storage Container Manager(SCM)

属性默认值描述
ozone.administrators-以逗号分隔的 Ozone 管理员列表
ozone.readonly.administrators-以逗号分隔的只读管理员列表
hdds.scm.block.deletion.per-interval.max500000SCM 在每个删除间隔内处理的最大块数
hdds.scm.replication.thread.interval300s复制监控线程的运行间隔
hdds.scm.replication.under.replicated.interval30s检查副本不足队列的频率
hdds.scm.replication.over.replicated.interval30s检查副本过多队列的频率
hdds.scm.replication.event.timeout12m复制/删除命令的超时时间
hdds.scm.replication.event.timeout.datanode.offset6m从事件超时时间中减去、用于确定 Datanode 截止时间的偏移量
hdds.scm.replication.maintenance.replica.minimum2节点维护所需的最小副本数
hdds.scm.replication.maintenance.remaining.redundancy1维护所需的剩余冗余度(EC)
hdds.scm.replication.datanode.replication.limit20每个 Datanode 排队的复制命令最大数量
hdds.scm.replication.datanode.reconstruction.weight3重构命令的权重乘数
hdds.scm.replication.datanode.delete.container.limit40每个 Datanode 排队的删除容器命令最大数量
hdds.scm.replication.inflight.limit.factor0.75用于按比例缩放集群级复制限制的系数
hdds.scm.replication.container.sample.limit100调试时每种状态采样的容器数量
ozone.scm.ec.pipeline.minimum5需要保持打开的最小 EC 管道数
ozone.scm.ec.pipeline.per.volume.factor1基于卷数量计算 EC 管道数的系数

Datanode

属性默认值说明
hdds.datanode.block.deleting.limit.per.interval20000数据节点每个间隔内删除的最大块数
hdds.datanode.block.delete.threads.max5块删除的最大线程数
ozone.block.deleting.service.workers10块删除服务的工作线程数
ozone.block.deleting.service.interval60s块删除服务的运行间隔
ozone.block.deleting.service.timeout300s块删除服务的超时时间
hdds.datanode.replication.streams.limit10每个数据节点的最大复制流数

使用示例

列出可重新配置的属性

要查看所有可以动态重新配置的属性:

$ ozone admin reconfig --service=OM --address=hadoop1:9862 properties
OM: Node [hadoop1:9862] Reconfigurable properties:
ozone.administrators
ozone.om.server.list.max.size
ozone.om.volume.listall.allowed

OM 重新配置

修改 ozone-site.xml 中的 ozone.administrators,然后执行:

$ ozone admin reconfig --service=OM --address=hadoop1:9862 start
OM: Started reconfiguration task on node [hadoop1:9862].

$ ozone admin reconfig --service=OM --address=hadoop1:9862 status
OM: Reconfiguring status for node [hadoop1:9862]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
SUCCESS: Changed property ozone.administrators
From: "hadoop"
To: "hadoop,bigdata"

SCM 重新配置

修改 ozone-site.xml 中的 ozone.administrators,然后执行:

$ ozone admin reconfig --service=SCM --address=hadoop1:9860 start
SCM: Started reconfiguration task on node [hadoop1:9860].

$ ozone admin reconfig --service=SCM --address=hadoop1:9860 status
SCM: Reconfiguring status for node [hadoop1:9860]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
SUCCESS: Changed property ozone.administrators
From: "hadoop"
To: "hadoop,bigdata"

数据节点重配置

修改 ozone-site.xml 中的 hdds.datanode.block.deleting.limit.per.interval,然后执行:

$ ozone admin reconfig --service=DATANODE --address=hadoop1:19864 start
Datanode: Started reconfiguration task on node [hadoop1:19864].

$ ozone admin reconfig --service=DATANODE --address=hadoop1:19864 status
Datanode: Reconfiguring status for node [hadoop1:19864]: started at Wed Dec 28 19:04:44 CST 2022 and finished at Wed Dec 28 19:04:44 CST 2022.
SUCCESS: Changed property hdds.datanode.block.deleting.limit.per.interval
From: "20000"
To: "30000"

批量操作(仅限数据节点)

要同时对所有处于 IN_SERVICE 状态的数据节点执行重新配置:

$ ozone admin reconfig --service=DATANODE --in-service-datanodes start
Datanode: Started reconfiguration task on node [hadoop1:19864].
Datanode: Started reconfiguration task on node [hadoop2:19864].
Datanode: Started reconfiguration task on node [hadoop3:19864].
Reconfig successfully 3 nodes, failure 0 nodes.

要列出所有 Datanode 上的属性:

$ ozone admin reconfig --service=DATANODE --in-service-datanodes properties
Datanode: Node [hadoop1:19864] Reconfigurable properties:
hdds.datanode.block.deleting.limit.per.interval
Datanode: Node [hadoop2:19864] Reconfigurable properties:
hdds.datanode.block.deleting.limit.per.interval
Datanode: Node [hadoop3:19864] Reconfigurable properties:
hdds.datanode.block.deleting.limit.per.interval
Reconfig successfully 3 nodes, failure 0 nodes.

最佳实践

  1. 先在非生产环境测试:在将配置更改应用到生产环境之前,务必先在测试环境中进行验证。
  2. 每次只修改一个属性:当需要进行多项更改时,应逐步应用,以便隔离每项更改所产生的影响。
  3. 更改后进行监控:重新配置后,密切观察集群的指标和日志,确保更改达到了预期效果。
  4. 记录更改:保留配置更改的记录,以便用于故障排查和审计。
  5. 谨慎使用批处理操作:使用 --in-service-datanodes 时,请确保所有节点都应接收相同的配置。

评论

登录后参与评论

正在加载评论…