Hadoop3.1.3 ,hive-3.1.2,flink1.12.0由guava的jar包版本不一致导致的兼容性问题

在尝试集成Flink 1.12.0和Hive 3.1.2时,报出`NoSuchMethodError`,原因是guava jar包版本不一致。尽管Hadoop 3.1.3和Hive的guava版本相同,但flink/lib下的某些jar包引用了较低版本的guava。问题定位为hive-exec-3.1.2.jar依赖guava-19.0.jar,而flink-sql-connector-hive引用了它。解决方案是重新编译这两个jar包,确保它们使用相同的高版本guava,并替换到Flink的lib目录中,从而解决冲突。
摘要由CSDN通过智能技术生成

问题:

在flink1.12.0集成hive3.1.2的过程中,启动./sql-client.sh embedded 报错:
Caused by: java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument (ZLjava/lang/String;Ljava/lang/Object;)V.

可以看出是由于guava的jar包版本冲突了。

集成的过程中,我们只在flink/lib下面添加了如下jar包:
在这里插入图片描述
经过检查发现Hadoop3.1.3 和 hive-3.1.2 的lib下面的guava都是guava-27.0-jre.jar,没有冲突问题。
那就说明只可能是flink/lib下面添加的上面4个jar包中有jar包编译时,引用的guava版本过低导致的。
通过源码锁定了hive-exec-3.1.2.jar 引用了guava-19.0.jar 包,并且 flink-sql-connector-hive-3.1.2_2.11-1.12.0.jar 引用了 hive-exec-3.1.2.jar,所以需要首先重新编

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

科学的N次方

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值