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

配置HDFS快速关闭文件功能

操作场景

默认情况下关闭HDFS文件时需要等待所有的Block都上报成功(处于COMPLETED状态)。因此HDFS的一部分写性能消耗为等待DataNode块上报以及NameNode处理块上报。对于一个负载较大的集群,等待的消耗对集群影响较大。

该章节指导用户通过配置NameNode参数“dfs.namenode.file.close.num-committed-allowed”来提前关闭文件,提升写数据性能。但是由于提前关闭了文件,可能在读取数据的时候由于块找不到或者NameNode元数据中记录的数据块信息和DataNode中存储的真实副本不一致而失败。因此该特性不适用于写完数据即读的场景,请结合业务场景谨慎使用该特性。

约束与限制

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

操作步骤

  1. 登录FusionInsight Manager。

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

  2. 选择“集群 > 服务 > HDFS > 配置 > 全部配置”进入HDFS全部配置页面。
  3. 搜索并修改“dfs.namenode.file.close.num-committed-allowed”参数,配置项详细说明如下表。

    参数

    参数说明

    dfs.namenode.file.close.num-committed-allowed

    关闭文件时,允许待关闭文件中处于COMMITTED状态的Block的数量。

    • 默认为:0,即关闭该特性。
    • 如果开启该特性,一般建议值为1~2,不建议太大。

    例如:如果该参数值为1,则表示无需等待最后一个Block状态变成COMPLETED即可关闭文件。

  4. 参数修改后保存配置。
  5. 在HDFS“实例”界面,勾选主备NameNode实例,选择“更多 > 滚动重启实例”,等待滚动重启完成生效。

    滚动重启期间,由于NameNode节点会主备倒换,导致系统在短暂时间内出现无主现象(主备倒换过渡期),可能会出现HDFS服务不可用告警信息,运行的读写任务会报错,但是不会中断业务。

相关文档

相关文档