配置Flink通过Guardian访问OBS
参考配置Guardian服务对接OBS完成Guardian对接OBS后,即可在Flink客户端访问OBS并行文件系统并运行作业。
Flink对接OBS
- 使用安装客户端的用户登录Flink客户端安装节点。
- 执行如下命令初始化环境变量。
source 客户端安装目录/bigdata_env
- 配置好Flink客户端,具体配置参考从零开始使用Flink的步骤1至步骤4。
- 启动session。
- 普通集群(未开启Kerberos认证)
- 安全集群(开启Kerberos认证)
- “flink.keystore”和“flink.truststore”文件路径为相对路径时:
在“ssl”的同级目录下执行如下命令启动session,其中“ssl/”是相对路径。
cd /opt/hadoopclient/Flink/flink/conf/
yarn-session.sh -t ssl/ -nm "session-name" -d
... Cluster started: Yarn cluster with application id application_1624937999496_0017 JobManager Web Interface: http://192.168.1.150:32261
- “flink.keystore”和“flink.truststore”文件路径为绝对路径时:
执行如下命令启动session。
cd /opt/hadoopclient/Flink/flink/conf/
yarn-session.sh -nm "session-name" -d
- “flink.keystore”和“flink.truststore”文件路径为相对路径时:
- 如果是安全集群,使用以下命令进行用户认证,如果当前集群未启用Kerberos认证,则无需执行此命令。
kinit 用户名
- 在Flink命令行显式添加要访问的OBS文件系统。
echo -e 'test' >/tmp/test
hdfs dfs -mkdir -p obs://并行文件系统名称/tmp/flinkjob
hdfs dfs -put /tmp/test/ obs://并行文件系统名称/tmp/flinkjob/
flink run 客户端安装目录/Flink/flink/examples/batch/WordCount.jar -input obs://并行文件系统名称/tmp/flinkjob/test -output obs://并行文件系统名称/tmp/flinkjob/output
- 由于Flink作业是On Yarn运行,在配置Flink对接OBS文件系统之前需要确保Yarn对接OBS文件系统功能是正常的。
- OBS并行文件系统名称/文件名称:OBS文件路径需写至目录层级。
- 集群已启用Kerberos认证(安全模式)需参考Ranger权限配置在Ranger中为组件操作用户赋予OBS路径的“Read”和“Write”权限。
Ranger权限配置
- 登录FusionInsight Manager,选择“系统 > 权限 > 用户组 > 添加用户组”。
- 创建一个空角色的用户组,例如,名称为“obs_flink”,并将该用户组绑定给对应用户。
- 使用rangeradmin用户登录Ranger管理页面。
- 在首页中单击“EXTERNAL AUTHORIZATION”区域的组件插件名称“OBS”。
- 单击“Add New Policy”,为2新建的用户组添加相应OBS路径的“Read”和“Write”权限,OBS目录若不存在则需要提前创建,且不允许带通配符*。
图1 为Flink用户组新增OBS路径读和写的权限