Session 集群可以提交作业进行调试。
创建 Session 集群
1. 可以在集群页面的集群服务中新增 Session 集群。

2. 配置 Session 集群,其中高级参数请参见 作业高级参数。

说明
Session 集群使用元加速 COS 桶,也需要上传对应依赖。
Session 集群使用 Kerberos 认证时,也需要上传对应依赖。
3. 单击确认之后就会启动。
元加速 COS 桶
1. 下载元加速桶依赖(有的 Connector 已经内置,Iceberg/Setats Connector 需要手动下载 flink-chdfs-hadoop-1.10.0-0.1.4.jar 依赖并上传)
2. 配置高级参数:
flink.hadoop.fs.cosn.trsf.fs.AbstractFileSystem.ofs.impl: com.qcloud.chdfs.fs.CHDFSDelegateFSAdapterflink.hadoop.fs.cosn.trsf.fs.ofs.impl: com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapterflink.hadoop.fs.cosn.trsf.fs.ofs.tmp.cache.dir: /tmp/chdfs/flink.hadoop.fs.cosn.trsf.fs.ofs.user.appid: <YourAppId>flink.hadoop.fs.cosn.trsf.fs.ofs.bucket.region: <YourRegion>flink.hadoop.fs.cosn.trsf.fs.ofs.upload.flush.flag: trueflink.hadoop.fs.AbstractFileSystem.cosn.impl: org.apache.hadoop.fs.CosNflink.hadoop.fs.cosn.impl: org.apache.hadoop.fs.CosFileSystemflink.hadoop.fs.cosn.bucket.region: <YourRegion>flink.hadoop.fs.cosn.userinfo.appid: <YourAppId>flink.hadoop.fs.ofs.impl: com.qcloud.chdfs.fs.CHDFSHadoopFileSystemAdapterflink.hadoop.fs.ofs.tmp.cache.dir: /tmp/chdfs/flink.hadoop.fs.ofs.upload.flush.flag: trueflink.hadoop.fs.ofs.user.appid: <YourAppId>flink.hadoop.fs.ofs.bucket.region: <YourRegion>containerized.taskmanager.env.HADOOP_USER_NAME: hadoopcontainerized.master.env.HADOOP_USER_NAME: hadoop
Kerberos 认证
获取依赖
1. 登录集群 Master 节点,获取 krb5.conf、emr.keytab、core-site.xml、hdfs-site.xml、hive-site.xml 文件,路径如下:
/etc/krb5.conf/var/krb5kdc/emr.keytab/usr/local/service/hadoop/etc/hadoop/core-site.xml/usr/local/service/hadoop/etc/hadoop/hdfs-site.xml/usr/local/service/hive/conf/hive-site.xml
2. 修改 hive-site.xml 文件。在 hive-site.xml 中增加如下配置,IP 的值取自配置文件中
hive.server2.thrift.bind.host 的 value。<property><name>hive.metastore.uris</name><value>thrift://ip:7004</value></property>
3. 获取 hivemetastore-site.xml 和 hiveserver2-site.xml,点击文件名下载。
4. 对获取的配置文件打 jar 包。
jar cvf hive-xxx.jar krb5.conf emr.keytab core-site.xml hdfs-site.xml hive-site.xml hivemetastore-site.xml hiveserver2-site.xml
5. 校验 jar 的结构(可以通过 vim 命令查看 vim hdfs-xxx.jar),jar 里面包含如下信息,请确保文件不缺失且结构正确。
META-INF/META-INF/MANIFEST.MFemr.keytabkrb5.confhdfs-site.xmlcore-site.xmlhive-site.xmlhivemetastore-site.xmlhiveserver2-site.xml
6. 在 程序包管理 页面上传 jar 包,并在作业参数配置里引用该程序包。
7. 获取 kerberos principal,用于 作业高级参数 配置。
klist -kt /var/krb5kdc/emr.keytab# 输出如下所示,选取第一个即可:hadoop/172.28.28.51@EMR-OQPO48B9KVNO Timestamp Principal---- ------------------- ------------------------------------------------------2 08/09/2021 15:34:40 hadoop/172.28.28.51@EMR-OQPO48B92 08/09/2021 15:34:40 HTTP/172.28.28.51@EMR-OQPO48B92 08/09/2021 15:34:40 hadoop/VM-28-51-centos@EMR-OQPO48B92 08/09/2021 15:34:40 HTTP/VM-28-51-centos@EMR-OQPO48B9
高级参数
containerized.taskmanager.env.HADOOP_USER_NAME: hadoopcontainerized.master.env.HADOOP_USER_NAME: hadoopsecurity.kerberos.login.principal: hadoop/172.28.28.51@EMR-OQPO48B9security.kerberos.login.keytab: emr.keytabsecurity.kerberos.login.conf: krb5.confflink.hadoop.hadoop.security.authentication: kerberosflink.hadoop.hadoop.security.auth_to_local: RULE:[1:$1] RULE:[2:$1] DEFAULT
说明:
security.kerberos.login.keytab 和 security.kerberos.login.conf 的值为对应的文件名。
使用 Session 调试
1. 进入作业管理的开发调试中,并切换到草稿,然后单击 Session调试。

2. 可以在页面看到作业的输出(不会真正写入 Sink)。

说明:
Session 调试会在输出一定数据后或一定时间后自动结束。