flink集成iceberg访问hive catalog任务报错

南墨3年前技术文章1450

问题现象

flink在集成iceberg后访问hive catalog任务无法执行,但flink自身任务正常,iceberg表任务无法执行,报错如下:

Caused by: java.lang.RuntimeException: org.apache.flink.runtime.JobException: 
Creating the input splits caused an error: 
Failed to get table info from metastore ice.flink_ice

1.png

问题原因

导致flink在执行iceberg表操作的时候需要链接metastore,但是由于hive配置无法获取到,因此无法连接metastore,导致ttransportexception。进而出现无法获取表的报错

解决办法

在flink加载hive catalog时,设置相关hive的conf目录,使相关catalog能加载到对应hive conf即可,实例如下:

CREATE CATALOG ice_catalog WITH (
  'type'='iceberg',
  'catalog-type'='hive',
  'hive-conf-dir'='/opt/apache-hadoop/hive/conf',
  'uri'='thrift://hadoop02p.test.com:9083',
  'clients'='5',
  'property-version'='1',
  'warehouse'='/user/hive/warehouse'
);

以上示例中:hive-conf-dir配置项为此问题关键配置,添加此配置后即可解决问题

hive catalog加载配置理论上应该从hive目录找寻,目前怀疑此处有配置冲突或者环境变量没有配置导致此问题


相关文章

Redis 慢查询相关配置

Redis 慢查询相关配置

一、查询生命周期一条查询的生命周期:发送命令命令排队执行命令返回结果Redis 慢日志只统计 “执行命令” 步骤 3 的耗时,所以没有慢查询并不代表客户端没有超时问题。二、慢日志配置参数慢日志相关的参...

python-序列化和反序列化

1、为什么要序列化内存中的字典、列表、集合以及各种对象,如何保存到一个文件中?如果是自己定义的类的实例,如何保存到一个文件中?如何从文件中读取数据,并让它们在内存中再次恢复成自己对应的类的实例?要设计...

Hbase&Hive区别对比

Hbase和Hive定义区别Hbase,其实是Hadoop database的简称,是一种NoSQL数据库,主要适用于海量明细数据(十亿、百亿)的随机实时查询,如日志明细、交易清单、轨迹行为等。Hiv...

HBase 的 BulkLoad 机制

HBase 的 BulkLoad 机制

1.概述在实际生产环境中,有这样一种场景:用户数据位于HDFS中,业务需要定期将这部分海量数据导入 HBase 系统,以执行随机查询更新操作。这种场景如果调用写入 API 进行处理,极有可能会给 Re...

Dockerfile编写指南

Dockerfile编写指南

一、背景  在k8s提出抛弃docker,拥抱其他的cri插件的情况下,为什么还有这篇指南呢?首先Dockerfile作为容器打包的标准,已经存在了很多年了。其中的编写技巧到现在也是一直延续的,所以并...

企业级大数据安全架构(一)

前言1.企业级大数据平台安全隐患目前企业级大数据平台面临的一些安全隐患,只要将这些安全隐患全部解决之后才可以部署到生产环境去使用,因此安全性是大数据平台必备的能力之一。1.1缺乏统一的访问控制机制大数...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。