IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> flink 报错之旅 -> 正文阅读

[大数据]flink 报错之旅

001 字节码校验错误java.lang.VerifyError: Stack map does not match the one at exception handler 70

在这里插入图片描述
通过一通google,大致的意思就是你的jar包版本不对,真tmd头疼
通过日志信息可以查看到是hive的版本不对
我通过修改我flink程序的hive的版本为我本机环境安装的版本,测试一下,发现还是不对
最后是想了想,既然是版本冲突,那我只需要删除多余的hive版本的jar包即可
我还真的从flink的lib目录中找出一个hive的包,不知道是哪天塞进去了
折腾我半天

002 iceberg catalog无法创建 The main method caused an error: Could not find a suitable table factory for ‘org.apache.flink.table.factories.CatalogFactory’ in

在这里插入图片描述
代码一通找,真是无语
首先屡一下思路,执行的报错逻辑为

    tenv.executeSql("CREATE CATALOG hive_catalog WITH (\n" +
                "  'type'='iceberg',\n" +
                "  'catalog-type'='hive',\n" +
                "  'uri'='thrift://zh:9083',\n" +
                "  'clients'='5',\n" +
                "  'property-version'='1',\n" +
                "  'warehouse'='hdfs:///user/hive/warehouse' " +
                ")");

从报错来看 是在寻找iceberg对应的catalog时候报错
org.apache.flink.table.factories.CatalogFactory
从日志来看,找到的是GenericInMemoryCatalogFactory这个作为实现类
所以问题就来了,这家伙是怎么地跑到了GenericInMemoryCatalogFactory去的
按照我的理解,这种东西一般都是spi,也就是一个得有iceberg的jar包
在这里插入图片描述
这个引起了我的注意,解压之后,查看TableFactory的内容:org.apache.iceberg.flink.FlinkCatalogFactory
换句话说就是,只要有这么这个jar包在classpath中,正常spi,在初始化CatalogFactory的时候,会寻找到jar包中的services,然后寻找到上图中这个文件,最后初始化里面的内容,进而找到了iceberg定义的factory

不过问题又来了,这儿报错的可是CatalogFactory,这个jar包里写的是tableFactory,我寻找了一下,如下图,原来是继承关系
在这里插入图片描述
最后解决办法,将icerberg-flink对应的jar包丢flink的lib中,解决

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:33:51  更:2021-07-24 11:34:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/4 6:04:41-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码