
# 配置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. 参数修改后保存配置，无需重启服务或实例。
 
