更新时间:2025-12-10 GMT+08:00
分享

配置HDFS只读模式

操作场景

HDFS支持目录级别的只读设置,开启只读后配置的目录只能进行读取,不能够进行任何写入操作。在HDFS存量数据进行搬迁时开启只读模式,能够极大的增加搬迁效率,防止因为写操作导致搬迁失败。

约束与限制

  • 该功能适用于MRS 3.6.0及之后版本。
  • NameNode重启后只读模式需要重新开启。
  • 在使用完成后应立即退出只读模式,防止对业务造成影响。

前提条件

  • 已安装HDFS组件客户端。

    例如安装目录为“/opt/client”。

  • 已创建人机用户,且用户加入supergroup用户组。

操作步骤

  1. 以客户端安装用户,登录客户端安装节点。
  2. 执行以下命令,切换到客户端安装目录。

    cd /opt/client

  3. 执行以下命令配置环境变量。

    source bigdata_env

  4. 如果集群为安全模式,需执行以下命令进行用户认证。普通模式集群无需执行该步骤。

    kinit 组件业务用户

  5. 执行以下命令开启只读模式。

    hdfs dfsadmin -readonly enable

    • 只读模式命令参数说明请见表1
      表1 只读模式命令参数说明

      参数

      描述

      enable

      开启只读模式

      disable

      关闭只读模式

      get

      获取只读模式状态

    • 如果只对某一个NameService开启只读模式,则需要在命令前添加-fs参数。如果为联邦场景,则必须使用-fs参数。例如:

      hdfs dfsadmin -fs hdfs://hacluster -readonly enable

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

    表2 只读模式相关参数

    参数名称

    参数说明

    默认值

    hdfs.readonly-mode.directory.list

    开启只读模式后,指定只读生效的目录。

    • 配置的目录只能读不能写。
    • 多个目录使用英文逗号分隔。
    • 该参数值不支持使用正则表达式。

    -

    hdfs.readonly-mode.white.list.user

    开启只读模式后,不受只读模式限制的用户。

    • 多个用户使用英文逗号分隔。
    • 该参数值不支持使用正则表达式。

    -

  7. 参数修改后保存配置,无需重启服务或实例。

相关文档