问题:
在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,所以需要首先重新编