
# 准备Flink应用开发用户
开发用户用于运行样例工程。在安全集群中，用户需要有HDFS、YARN、Kafka和Flink权限，才能运行Flink样例工程。
#### 前提条件
MRS服务集群开启了Kerberos认证，没有开启Kerberos认证的集群忽略该步骤。
#### 操作步骤
1. 登录MRS Manager，在MRS Manager界面选择"系统设置 \> 角色管理 \> 添加角色"。 
   1. 填写角色的名称，例如flinkrole。
   
   2. 在"权限"的表格中选择"HDFS \> File System \> hdfs://hacluster/"，勾选"Read"、"Write"和"Execute"，单击"权限"表格中"服务"返回。
   
   3. 在"权限"的表格中选择"Yarn \> Scheduler Queue \> root"，勾选default的"Submit"，单击"确定"保存。
      ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
      根据以上角色的设置，用户提交应用后，会在客户端打印WARN日志。出现WARN日志是由于Flink会去YARN获取资源剩余值并进行检测评估，但该操作需要admin操作权限，可用户并没有设置该权限。该问题不影响任务提交执行，可以忽略。WARN日志如下：
      ```
      Get node resource from yarn cluster. Yarn cluster occur exception: org.apache.hadoop.yarn.exceptions.YarnPermissionDeniedException: User flinkuser does not have privilege to see, admin only
      ```
      
   
   
   
   
2. 在MRS Manager界面选择"系统设置 \> 用户组管理 \> 添加用户组"，为样例工程创建一个用户组，例如flinkgroup。
3. 在MRS Manager界面选择"系统设置 \> 用户管理 \> 添加用户"，为样例工程创建一个用户。填写用户名例如**flinkuser** ，用户类型为"人机"用户，加入用户组**flinkgroup** 和**hadoop** ，并绑定角色**flinkrole** 取得权限，单击"确定"。
   
   ![](https://support.huaweicloud.com/devg-mrs/public_sys-resources/note_3.0-zh-cn.png)
   - 在客户端修改flinkuser密码后才能使用本用户。
   
   - 若用户需要对接Kafka，则需创建具有Flink和Kafka组件的混合集群，或者为拥有Flink组件的集群和拥有Kafka组件的集群配置跨集群互信，并将flinkuser用户加入"kafkaadmin"用户组。
   
   - 当用户需要运行[向Kafka生产并消费数据程序](https://support.huaweicloud.com/devg-mrs/mrs_06_0400.html)（Scala和Java语言）样例程序时，需要加入"kafkaadmin"用户组。
    
   
   
4. 在MRS Manager界面选择"系统设置 \> 用户管理"，在用户名中选择flinkuser，单击操作中下载认证凭据文件，保存后解压得到用户的keytab文件与krb5.conf文件，并将krb5.conf文件拷贝到客户端机器的**/etc** 目录下。用于在样例工程中进行安全认证，具体使用请参考[准备Flink应用安全认证](https://support.huaweicloud.com/devg-mrs/mrs_06_0393.html)。
 
