Hi yihan,
这个本质上可以理解成在Flink的taskmanager运行一个UDF(UDF做的事情是写另一个Kerberos HDFS集群),所以技术上是可能的。
我之前走通过普通Yarn集群的Flink任务写入另一个Kerberos HDFS集群的流程,整体操作感觉比较复杂,通常而言,你需要如下步骤:
1. 
准备一个HAOOP_CONF_DIR,它包含hdfs-site.xml、core-site.xml等配置,除此之外还要准备kerberos鉴权所需的krb5.conf等文件,使得你在使用这个HAOOP_CONF_DIR以及通过kinit命令完成授权后,可以在你的Yarn集群通过Hadoop
 client访问另一个加密HDFS(例如可以get/put文件)。
2. 
在你的flink应用中,通过containerized.taskmanager.env.XX、containerized.master.env.XX这2类配置项来指定需要使用的HADOOP_USER_NAME、HAOOP_CONF_DIR(你需要把步骤1准备好的HAOOP_CONF_DIR通过yarn.ship-files参数进行指定,从而使得它被ship到YARN
 TM container中,然后-D containerized.taskmanager.env. 
HAOOP_CONF_DIR=./hadoop-conf)。类似的,用于访问目标kerberos集群的krb5.conf也需要ship。

整体流程比较容易遇到很多kerberos相关报错,可能需要多做些尝试与搜素。

Best,
Biao Geng


From: yihan <x2009...@126.com>
Date: Saturday, April 8, 2023 at 10:26 PM
To: user-zh@flink.apache.org <user-zh@flink.apache.org>
Subject: Kerberos加密Yarn集群上的Flink任务写入其他未互信的加密HDFS是否可能
请教如标题问题,谢谢。

回复