更新时间:2024-12-10 GMT+08:00

准备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”,单击“确定”保存。

      根据以上角色的设置,用户提交应用后,会在客户端打印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,用户类型为“人机”用户,加入用户组flinkgrouphadoop,并绑定角色flinkrole取得权限,单击“确定”。

    • 在客户端修改flinkuser密码后才能使用本用户。
    • 若用户需要对接Kafka,则需创建具有Flink和Kafka组件的混合集群,或者为拥有Flink组件的集群和拥有Kafka组件的集群配置跨集群互信,并将flinkuser用户加入“kafkaadmin”用户组。
    • 当用户需要运行向Kafka生产并消费数据程序(Scala和Java语言)样例程序时,需要加入“kafkaadmin”用户组。

  4. 在MRS Manager界面选择“系统设置 > 用户管理”,在用户名中选择flinkuser,单击操作中下载认证凭据文件,保存后解压得到用户的keytab文件与krb5.conf文件,并将krb5.conf文件拷贝到客户端机器的/etc目录下。用于在样例工程中进行安全认证,具体使用请参考准备Flink应用安全认证