启动hive报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang
報錯詳情:
b/slf4j-log4j12-1.7.25.jar!/org/slf4j/impl/StaticLoggerBinder.class] SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation. SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory] Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)Vat 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:5099)at org.apache.hadoop.hive.common.LogUtils.initHiveLog4jCommon(LogUtils.java:97)at org.apache.hadoop.hive.common.LogUtils.initHiveLog4j(LogUtils.java:81)at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:699)at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:683)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) [root@node01 apache-hive-3.1.2-bin]#從報錯信息來看:
一,java.lang.NoSuchMethodError
原因:1.系統找不到相關jar包
2.同一類型的 jar 包有不同版本存在,系統無法決定使用哪一個
二,com.google.common.base.Preconditions.checkArgument
根據百度可知,該類來自于guava.jar
三,查看該jar包在hadoop和hive中的版本信息
hadoop-3.2.1(路徑:hadoop\share\hadoop\common\lib)中該jar包為 guava-27.0-jre.jar
hive-2.3.6(路徑:hive/lib)中該jar包為guava-14.0.1.jar
四,解決方案
刪除hive中低版本的guava-14.0.1.jar包,將hadoop中的guava-27.0-jre.jar復制到hive的lib目錄下即可。
五,成功運行hive
啟動hive報錯:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V(已解決)
總結
以上是生活随笔為你收集整理的启动hive报错:java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 债券投资的风险因素包括
- 下一篇: 比尔·盖茨与妻子宣布离婚 1300亿