有没有在用flink读取hive的时候报错这个错误呀?

有没有小伙伴在用flink读取hive的时候报错这个错误呀?用的是flink 1.12版本的hive table connector 83e242c6442e05897101092eb14c2cc9.png

展开
收起
真的很搞笑 2024-04-17 14:09:38 69 分享 版权
阿里云 AI 助理回答

在使用 Flink 1.12 版本的 Hive Table Connector 读取 Hive 表时,可能会遇到类似以下错误:

Caused by: MetaException(message:Initialize DlfMetaStoreClient failed: Initialize DlfMetaStoreClient failed: Cannot obtain STS token from EMR meta-service. Note that AK-Mode[dlf.catalog.akMode] can only used in EMR clusters, otherwise you should config the dlf.catalog.accessKeyId and dlf.catalog.accessKeySecret explicitly.)

报错原因

该问题通常是由于配置文件中的 Hive Catalog 初始化异常导致的。具体来说,dlf.catalog.akMode 参数被设置为 EMR_AUTO,但当前环境并非运行在 EMR 集群中,因此无法正确获取 STS Token。


解决方案

要解决此问题,请按照以下步骤操作:

1. 修改 hive-site.xml 文件

找到 hive-conf-dir 目录下的 hive-site.xml 文件,并删除以下配置:

<property>
    <name>dlf.catalog.akMode</name>
    <value>EMR_AUTO</value>
</property>

2. 配置 AccessKeyId 和 AccessKeySecret

hive-site.xml 文件中添加以下配置,显式指定阿里云账号的 AccessKeyId 和 AccessKeySecret:

<property>
    <name>dlf.catalog.accessKeyId</name>
    <value>${AccessKeyId}</value>
</property>
<property>
    <name>dlf.catalog.accessKeySecret</name>
    <value>${AccessKeySecret}</value>
</property>

注意:请将 ${AccessKeyId}${AccessKeySecret} 替换为您实际的阿里云账号的 AccessKeyId 和 AccessKeySecret。


其他注意事项

  1. DLF Endpoint 配置
    如果您使用的是 Data Lake Formation (DLF) 服务,请确保正确配置了 dlf.endpoint 参数。推荐使用 DLF 的 VPC Endpoint,例如:

    dlf.endpoint=dlf-vpc.cn-hangzhou.aliyuncs.com
    

    重要提示dlf.endpointdlf.region-id 必须选择相同的地域。

  2. 网络连通性检查
    确保 Flink 工作空间与 Hive 或 DLF 服务之间的网络是连通的。如果跨 VPC 访问,请参考如何访问跨 VPC 的其他服务的相关文档。

  3. 版本兼容性
    Flink 1.12 版本的 Hive Table Connector 对某些功能可能存在限制或兼容性问题。建议升级到更高版本的 Flink 引擎(如 VVR 3.0.3 或更高版本),以获得更好的稳定性和功能支持。


总结

通过上述修改配置和检查网络连通性,可以有效解决 Flink 读取 Hive 表时出现的 Cannot obtain STS token from EMR meta-service 错误。如果问题仍然存在,请进一步检查日志信息并确认是否涉及其他依赖冲突或配置问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答

实时计算Flink版是阿里云提供的全托管Serverless Flink云服务,基于 Apache Flink 构建的企业级、高性能实时大数据处理系统。提供全托管版 Flink 集群和引擎,提高作业开发运维效率。

还有其他疑问?
咨询AI助理