更新时间:2025-08-09 GMT+08:00
配置Flink通过IAM委托访问OBS
参考配置MRS集群通过IAM委托对接OBS完成存算分离集群配置后,即可在Flink任务中访问OBS并行文件系统并运行作业,本章节以通过提交一个Flink WordCount作业为例进行介绍。
前提条件
由于Flink作业是On Yarn运行,在配置Flink对接OBS文件系统之前需要确保Yarn对接OBS文件系统功能是正常的。
Flink对接OBS
- 使用安装客户端的用户登录Flink客户端安装节点。
下载并安装集群客户端的具体操作,请参考安装MRS集群客户端。
- 执行如下命令初始化环境变量。
source 客户端安装目录/bigdata_env
- 配置好Flink客户端,具体配置参考从零开始使用Flink的步骤1至步骤5。
- 启动session。
- 普通集群(未开启Kerberos认证)
yarn-session.sh -nm "session-name" -d
- 安全集群(开启Kerberos认证)
- “flink.keystore”和“flink.truststore”文件路径为相对路径时:
在“ssl”的同级目录下执行如下命令启动session,其中“ssl/”是相对路径。
切换到“conf”目录:
cd 客户端安装目录/Flink/flink/conf/
启动session:
yarn-session.sh -t ssl/ -nm "session-name" -d
session启动成功:
... Cluster started: Yarn cluster with application id application_1624937999496_0017 JobManager Web Interface: http://192.168.1.150:32261
- “flink.keystore”和“flink.truststore”文件路径为绝对路径时,执行如下命令启动session:
切换到“conf”目录:
cd 客户端安装目录/Flink/flink/conf/
启动session:
yarn-session.sh -nm "session-name" -d
- “flink.keystore”和“flink.truststore”文件路径为相对路径时:
- 普通集群(未开启Kerberos认证)
- 如果集群启用了Kerberos认证,使用以下命令进行用户认证,如果当前集群未启用Kerberos认证,则无需执行此命令。
kinit 用户名
- 在Flink命令行显式添加要访问的OBS文件系统,并执行分析程序。
- 在“/tmp/test”目录下创建“test”文件:
echo -e 'test' >/tmp/test
- 在OBS并行文件系统中创建存放“test”文件的目录:
hdfs dfs -mkdir -p obs://并行文件系统名称/tmp/flinkjob
- 将“test”文件上传至OBS并行文件系统中:
hdfs dfs -put /tmp/test/ obs://并行文件系统名称/tmp/flinkjob/
- 执行以下命令运行“WordCount.jar”:
flink run 客户端安装目录/Flink/flink/examples/batch/WordCount.jar -input obs://并行文件系统名称/tmp/flinkjob/test -output obs://并行文件系统名称/tmp/flinkjob/output
- 在“/tmp/test”目录下创建“test”文件:
- 登录OBS控制台,在6.d配置的输出路径下即可查看“WordCount.jar”运行结果。