hive报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
hive报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument1. 添加依赖2. 降低MySQL connector的版本Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preco.
·
hive报错java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1357)
at org.apache.hadoop.conf.Configuration.set(Configuration.java:1338)
at org.apache.hadoop.mapred.JobConf.setJar(JobConf.java:536)
at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:554)
at org.apache.hadoop.mapred.JobConf.<init>(JobConf.java:448)
at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141)
at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5104)
at org.apache.hive.beeline.HiveSchemaTool.<init>(HiveSchemaTool.java:96)
at org.apache.hive.beeline.HiveSchemaTool.main(HiveSchemaTool.java:1473)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:323)
at org.apache.hadoop.util.RunJar.main(RunJar.java:236)
找不到方法,因为MySQL connectoe和hive库版本不一致导致的,没有相应的接口,有一下两种解决方案:
1. 添加依赖
- 如果是maven项目,在maven添加依赖(也可以方便找jar包)
<!-- 以项目为准,这里引入的是当前最新版本 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>28.1-jre</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>4.4.11</version>
</dependency>
- 如果是运行环境,在hive文件夹的lib中添加jar包
如果有maven依赖,可以直接在本地仓库直接找到对应的jar包,即guava-28.1-jre.jar和httpcore-4.4.11.jar;如果maven环境,在网上下载相应的jar包即可。
2. 降低MySQL connector的版本
这个本人没有尝试过,在网上没有相应的例子,目测connector版本太高了,调用了更新的接口,hive自带的lib中没有,就报错了。
更多推荐
已为社区贡献1条内容
所有评论(0)