Hive启动时报错

网友投稿 310 2022-08-23

Hive启动时报错

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:518) at org.apache.hadoop.mapred.JobConf.setJarByClass(JobConf.java:536) at org.apache.hadoop.mapred.JobConf.(JobConf.java:430) at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5141) at org.apache.hadoop.hive.conf.HiveConf.(HiveConf.java:5104) at org.apache.hive.beeline.HiveSchemaTool.(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:318) at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

java.lang.NoSuchMethodError

原因: 1.系统找不到相关jar包 2.同一类型的 jar 包有不同版本存在,系统无法决定使用哪一个

com.google.common.base.Preconditions.checkArgument

该类来自于guava.jar,查看该jar包在hadoop和hive中的版本信息

hadoop路径 /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar

hive路径 /opt/module/hive/lib/guava-19.0.jar

解决方案

删除hive中低版本的guava-19.0.jar包,将hadoop中的guava-27.0-jre.jar复制到hive的lib目录下即可。

cp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar /opt/module/hive/lib/

rm guava-19.0.jar

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:停止使用 Python 循环,这三种方法效果更棒
下一篇:Python中删除空白字符(python 去掉空白字符)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~