更新时间:2026-10-30 GMT+08:00
分享

HDFS支持集群掉电自动恢复

操作场景

HDFS数据写入磁盘时会先写入操作系统缓存,当操作系统缓存写入完成后则认为数据写入完成,缓存数据写入磁盘工作交由操作系统完成。如果此时集群断电,则缓存的数据就会丢失,造成HDFS丢块现象。在HDFS启动时如果存在丢块,则HDFS会进入安全模式,无法自动恢复。

本章节指导集群管理员通过HDFS提供的配置参数,解决集群掉电无法自动恢复的问题,用户需要根据业务实际情况进行调整。

约束与限制

该章节操作仅适用于MRS 3.5.0-LTS及之后版本。

操作步骤

  1. 登录FusionInsight Manager。

    登录集群Manager具体操作,请参考访问MRS集群Manager。

  2. 选择“集群 > 服务 > HDFS > 配置 > 全部配置”进入HDFS全部配置页面。
  3. 搜索并根据实际需求进行配置以下参数。

    参数名称

    参数说明

    默认值

    dfs.datanode.synconclose

    在存储文件过程中,系统断电或重启时的数据写入策略。取值范围:

    • true:系统会等待操作系统缓存数据写入磁盘后才认为该次写入完成,此时不会发生掉电造成数据丢失的情况,但是开启该参数会造成HDFS写性能下降。
    • false:缓存中的block数据不会被立即写入磁盘,可能会导致数据丢失。

    请根据具体应用场景决定是否开启该参数。

    false

    dfs.namenode.safemode.threshold-pct

    参数表示DataNode上报的块达到总块数的百分比阈值。即满足“dfs.namenode.replication.min”定义的最小复制需求的块的比例。

    • 值小于等于0时,NameNode会直接退出安全模式,不会等待任何指定比例的块。
    • 值大于1时,NameNode会永久处于安全模式。
    • 达到该阈值时NameNode会自动退出安全模式,该值设置过低可能导致在集群启动阶段存在大量副本复制。
    • “dfs.namenode.replication.min”表示最小块副本数。在上传文件时,达到最小副本数,则认为上传成功。

    0.999999

  4. 参数修改后保存配置。
  5. 在HDFS“实例”界面,勾选所有NameNode、DataNode实例,选择“更多 > 滚动重启实例”,验证密码并确认操作影响后单击“确定”,等待滚动重启完成生效。

    • 滚动重启NameNode时,由于NameNode节点会主备倒换,导致系统在短暂时间内出现无主现象(主备倒换过渡期),可能会出现HDFS服务不可用告警信息,运行的读写任务会报错,但是不会中断业务。
    • 滚动重启DataNode可能导致部分正在读写的数据报错,客户端进行重试读写速率受到一定影响。

相关文档

相关文档