
# 准备MRS应用开发用户
#### 操作场景
开发用户用于运行样例工程。进行不同服务的组件开发时，需要赋予不同的用户权限。
#### 操作步骤
1. 登录FusionInsight Manager。
2. 在FusionInsight Manager界面选择"系统 \> 权限 \> 角色 \> 添加角色"。 
   1. 填写角色的名称，例如**developrole**，单击"确定"保存角色。
   
   2. 参考[如何判断某个服务是否使用了Ranger鉴权](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1868.html)，确认服务是否启用了Ranger鉴权？
      - 是，执行[3]。
      
      - 否，编辑角色，根据服务的权限控制类别添加业务开发时需要的权限，参见[表1]。
         表1权限列表 
        | 服务             | 所需添加权限                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
        |:---|:---|
        | HDFS           | 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统"，勾选"hdfs://hacluster"的"读"、"写"和"执行"，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  |
        | Mapreduce/Yarn | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/"，勾选"user"的"读"、"写"和"执行"。继续选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> user"，勾选"mapred"的"读"、"写"、"执行"； 如果要执行多组件用例，还需： - 选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"勾选"default"的"创建"、"读"、"写"、"执行"。  - 选择"待操作集群的名称 \> HBase \> HBase Scope \> global \> hbase"，勾选"hbase:meta"的"创建"、"读"、"写"、"执行"。  - 选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> user"，勾选"hive"的"读"、"写"、"执行"。  - 选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> user \> hive"，勾选"warehouse"的"读"、"写"、"执行"。  - 选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> tmp"，勾选"hive-scratch"的"读"、"写"、"执行"，若存在"examples" ，勾选"examples"的"读"、"写"、"执行"和"递归"。  - 选择"*待操作集群的名称* \> Hive \> Hive读写权限"，勾选"default"的 "查询"、"插入"、"建表"、"递归"。单击"确定"保存。    2. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> Yarn \> 调度队列 \> root"，勾选default的"提交"，单击"确定"保存。   |
        | HBase          | 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope "，勾选"global"的"管理"、"创建"、"读"、"写"和"执行"，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
        | Spark2x        | 1. （若安装了HBase，则配置）在"配置资源权限"表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global"，勾选"default"的"创建"，单击"确定"保存。  2. （若安装了HBase，则配置）编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HBase \> HBase Scope \> global \> hbase"，勾选"hbase:meta"的"执行"，单击"确定"保存。  3. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> user"，勾选"hive"的"执行"，单击"确定"保存。  4. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \>user \>hive"，勾选"warehouse"的"读"、"写"和"执行"，单击"确定"保存。  5. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> Hive \> Hive读写权限"，勾选"default"的"建表"，单击"确定"保存。  6. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> Yarn \> 调度队列 \> root"，勾选"default"的"提交"，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
        | Hive           | 在"配置资源权限"的表格中选择"*待操作集群的名称* \> Yarn \> 调度队列 \> root"，勾选"default"的"提交"和"管理"，单击"确定"保存。 说明： Hive应用开发需要到的额外的操作权限需要从系统管理员处获取。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
        | ClickHouse     | 在"配置资源权限"的表格中选择"*待操作集群的名称* \> ClickHouse \> Clickhouse Scope"，勾选对应数据库的创建权限。单击对应的数据库名称，根据不同任务场景，勾选对应表的"读"、"写"权限，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
        | IoTDB          | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> IoTDB \> 普通用户权限"，勾选root根目录的"设置存储组"权限后，单击"确定"保存，创建不同的存储组。 2. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> IoTDB \> 普通用户权限 \> root"，选择对应的存储组，根据不同任务场景，勾选对应的"创建"、"修改"、"写"、"读"或"删除"权限，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 |
        | HetuEngine     | 1. 在"配置资源权限"的表格中选择"待操作集群的名称 \> Hive "，勾选"Hive管理员权限"。  2. 在"配置资源权限"的表格中选择"待操作集群的名称 \> Hive \> Hive读写权限"，根据不同任务场景，勾选不同权限，单击"确定"保存。 说明： - 在默认数据库中，查询其他用户表的权限：勾选"查询"。  - 在默认数据库中，导入数据到其他用户表的权限：勾选"删除"和"插入"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
        | Flink          | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统 \> hdfs://hacluster/ \> flink "，勾选"读"、"写"和"执行"，单击"配置资源权限"表格中"服务"返回。  2. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> Yarn \> 调度队列 \> root"，勾选default的"提交"，单击"确定"保存。 说明： 若指定state backend为HDFS，例如指定state backend目录为"hdfs://hacluster/flink-checkpoint"，需同样为"hdfs://hacluster/flink-checkpoint"目录配置"读"、"写"和"执行"权限。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                             |
        | Kafka          | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
        | Impala         | -                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
        | Oozie          | 1. 在"配置资源权限"的表格中选择"*待操作集群的名称* \> Oozie \> 普通用户权限"，单击"确定"保存。  2. 编辑角色，在"配置资源权限"的表格中选择"*待操作集群的名称* \> HDFS \> 文件系统" ，勾选"hdfs://hacluster"的"读"、"写"和"执行"，单击"确定"保存。  3. 编辑角色，在"权限"表格中选择"*待操作集群的名称* \> Yarn"，勾选"集群管理操作权限"，单击"确定"保存。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
        | ZooKeeper      | 创建一个人机或机机用户即可，ZooKeeper样例无特殊权限要求。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        |
           
        
       
   
   
   
   
3. 单击"系统 \> 权限 \> 用户组 \> 添加用户组"，为样例工程创建一个用户组，例如**developgroup**。
4. 单击"系统 \> 权限 \> 用户 \> 添加用户"，为样例工程创建一个用户。
5. 填写用户名，例如*developuser* ，按照[表2]选择相应的用户类型和需加入的用户组，并绑定角色**develop** **role** 取得权限，单击"确定"。
   
    表2用户类型和用户组列表 
   | 服务             | 用户类型  | 需加入的用户组                                                                                                                                                                                                                                                                                                                                                     |
   |:---|:---|:---|
   | HDFS           | 机机    | 加入****developgroup**** 和**supergroup** 组，设置其"主组"为**supergroup** **。**                                                                                                                                                                                                                                                                                       |
   | Mapreduce/Yarn | 机机    | 加入****developgroup****组。                                                                                                                                                                                                                                                                                                                                    |
   | HBase          | 机机    | 加入**hadoop**组。                                                                                                                                                                                                                                                                                                                                              |
   | Spark          | 机机/人机 | 加入**developgroup**组。 若用户需要对接Kafka，则需要添加kafkaadmin用户组。                                                                                                                                                                                                             |
   | Hive           | 机机/人机 | 加入**hive**组。                                                                                                                                                                                                                                                                                                                                                |
   | Kafka          | 机机    | 加入**kafkaadmin**组。                                                                                                                                                                                                                                                                                                                                          |
   | Impala         | 机机    | 加入**impala和supergroup** 组，设置其"主组"为**supergroup**。                                                                                                                                                                                                                                                                                                           |
   | HetuEngine     | 人机    | 加入hive组，设置其"主组"为hive。                                                                                                                                                                                                                                                                                                                                       |
   | ClickHouse     | 人机    | 加入**developgroup** 和**supergroup** 组，设置其"主组"为**supergroup** **。**                                                                                                                                                                                                                                                                                           |
   | Oozie          | 人机    | 加入**hadoop、supergroup、hive**组。若使用Hive多实例，该用户还需要从属于具体的Hive实例组，如hive3。                                                                                                                                                                                                                                                                                        |
   | Flink          | 人机    | 加入**developgroup** 和**hadoop** 组。设置其"主组"为****developgroup**。** 说明： 若用户需要对接Kafka，则需创建具有Flink和Kafka组件的混合集群，或者为拥有Flink组件的集群和拥有Kafka组件的集群配置跨集群互信，并将创建的Flink用户加入"kafkaadmin"用户组。 |
   | IoTDB          | 机机    | 加入**iotdbgroup**组。                                                                                                                                                                                                                                                                                                                                          |
      
   
   
6. 如果服务启用了Ranger鉴权，创建完成用户后，除了系统默认用户组及默认角色的权限外，需通过Ranger WebUI为用户或者用户所关联的角色/用户组进行赋权，具体操作可参考[配置组件权限策略](https://support.huaweicloud.com/cmpntguide-mrs/mrs_01_1851.html)相关访问权限策略设置章节。
7. 在FusionInsight Manager界面选择"系统 \> 权限 \> 用户"，在用户名中选择**develop** **user** ，单击操作"更多 \> 下载认证凭据"下载认证凭据文件，保存后解压得到用户的"user.keytab"文件与"krb5.conf"文件。Keytab文件用于在样例工程中进行安全认证，具体使用请参考各服务的开发指南指导。
   
   ![](https://support.huaweicloud.com/devg-lts-mrs/public_sys-resources/note_3.0-zh-cn.png)
   如果用户类型是人机，需要先修改初始密码后再下载认证凭据文件，否则在使用时会提示"Password has expired - change password to reset"，导致安全认证失败。
   
   
 
