最近更新时间:2023.07.12 10:25:15
首次发布时间:2023.02.27 19:16:31
我们在运行 standlone cluster 模式或者 yarn session 模式时,可能会遇到 yarn application 不存在的场景。主要原因为上一个 yarn session 的 application 任务已经结束,但是在本地/tmp/.yarn-properties-root
文件中还保留已经结束的 Application ID。SQL 客户端在默认不指定execution.target
的场景下,会从该文件中读取 Application ID,并尝试提交任务到该 Application 上。
解决办法:
手动删除或者修改/tmp/.yarn-properties-root
文件。
在 Flink 1.16 之后使用 hive dialect 的场景下,可能会出现以上错误,主要由依赖 Jar 包配置问题导致。
解决办法:
可参考Flink SQL Client使用参考---Hive Dialect建表 或者参考官方指南。
在 Flink 使用 hive dailect 模式,并且 EMR 集群启用了 ranger-hive-plugin,并直接使用/etc/emr/hive/conf
作为 hive conf 创建 Hive Catalog 时,Flink 运行环境缺少 ranger-hive-plugin 的相关依赖。
解决办法:
如果依然想启用 ranger-hive-plugin 进行权限校验,需将 ranger-hive-plugin 添加到 Flink classpath 下,比如ln -s /usr/lib/emr/current/ranger-hive-plugin/lib/ranger-hive-plugin-shim-2.1.1-SNAPSHOT.jar ranger-hive-plugin-shim-2.1.1-SNAPSHOT.jar
如果不想启用 ranger-hive-plugin,可以单独拷贝hive-site.xml
,并取出 ranger 相关的配置参数,用新的hive-site.xml
创建 Hive Catalog。
基于 TOS 协议向 TOS 写数据时,可能会遇到这类错误。需要额外添加添加 HDFS 参数,详情问题,可参考Hadoop-17597。
解决办法:
向core-site.xml
文件中添加一下参数,或者通过 EMR UI 添加该参数
<property> <name>fs.tos.downgrade.syncable.exceptions</name> <value>true</value> </property>
目前同时安装 Hudi 和 Iceberg 服务时,创建 Iceberg Hive Catalog 的时候可能会遇到以上错误,主要由于 Iceberg 和 Hudi 的冲突导致。
解决办法:
方法一:安装服务时,只安装 Iceberg 和 Hudi 其中的一个服务。
方法二:当使用 Iceberg 时,执行unlink /usr/lib/emr/current/flink/lib/hudi-flink-bundle_2.12.jar
命令手动移除 Hudi-flink 依赖包。