Hive初始化报错Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition

这篇具有很好参考价值的文章主要介绍了Hive初始化报错Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Hive 3.1.3 在执行初始化配置命令

bin/schematool -dbType derby -initSchema

的时候报下方错误

[root@hadoop100 hive-3.1.3]# bin/schematool -dbType derby -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/module/hive-3.1.3/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/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;)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.<init>(JobConf.java:430)
        at org.apache.hadoop.hive.conf.HiveConf.initialize(HiveConf.java:5144)
        at org.apache.hadoop.hive.conf.HiveConf.<init>(HiveConf.java:5107)
        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:318)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

这是因为hadoop和hive的两个guava.jar版本不一致,解决方案:
删除低版本的那个,将高版本的复制到低版本目录下

  • 第一步:查看hive3.1.3里的guava.jar
    这个保存在hive的lib里,比如我的就在这个目录里面:
/opt/module/hive-3.1.3/lib
版本是 guava-19.0.jar
  • 第二步:查看hadoop3.1.3 里的guava.jar
    这个保存在hadoop3.1.3的这个目录里面:
/opt/module/hadoop-3.1.3/share/hadoop/common/lib

Hive初始化报错Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition文章来源地址https://www.toymoban.com/news/detail-401246.html

  • 第三步:对比hive3.1.3里面和hadoop3.1.3里面guava的版本,统一换成高版本
  • 第四步:将hive3.1.3里面guava的版本,换成hadoop3.1.3里面的高版本即可
# 将hive3.1.3里面的guava重命名即可,不需要删除
 mv guava-19.0.jar guava-19.0.jar_bak
 # 将hadoop3.1.3里面的guava拷贝到hive3.1.3里面一份
 cp /opt/module/hadoop-3.1.3/share/hadoop/common/lib/guava-27.0-jre.jar 
  • 第五步:重新执行初始化命令
[root@hadoop100 hive-3.1.3]# bin/schematool -dbType derby -initSchema
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/opt/module/hive-3.1.3/lib/log4j-slf4j-impl-2.17.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/opt/module/hadoop-3.1.3/share/hadoop/common/lib/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]
Metastore connection URL:        jdbc:derby:;databaseName=metastore_db;create=true
Metastore Connection Driver :    org.apache.derby.jdbc.EmbeddedDriver
Metastore connection User:       APP
Starting metastore schema initialization to 3.1.0
Initialization script hive-schema-3.1.0.derby.sql
Initialization script completed
schemaTool completed
[root@hadoop100 hive-3.1.3]#

到了这里,关于Hive初始化报错Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • poi报错 Exception in thread “main“ java.lang.NoSuchFieldError: Factory

    背景:要实现一个需求,按照word模板合成一定的内容,给到前端,但是却跌到在了第一步,就是这个依赖的问题上 这个问题归根到底就是这个依赖冲突问题, 可是让我奇怪的是我用那个依赖分析器解决了poi-tl文件的冲突,因为我之前还使用了ali的easyexcel好多使用这个poi-相关

    2024年02月07日
    浏览(48)
  • 报错:springboot项目启动,Exception in thread “main“ java.lang.NoClassDefFoundError: org/springframework/com

     异常处理:当启动springboot项目时,报错Exception in thread \\\"main\\\" java.lang.NoClassDefFoundError: org/springframework/core/metrics/ApplicationStartup 报错截图: 解决措施:找到pom.xml,将其 这个部分替换为可运行的springboot项目的(一般为版本问题) 。

    2024年02月16日
    浏览(57)
  • 解决报错Exception in thread “main“ java.lang.NoClassDefFoundError: org/openqa/selenium/HasAuthentication

    解决报错Exception in thread “main” java.lang.NoClassDefFoundError: org/openqa/selenium/HasAuthentication 网上查资料发现 是导入了不同版本的selenium包。 解决办法: 修改pom.xml 重新下载后 selenium相关依赖包都是同个版本了 重新运行代码 ,运行通过!

    2024年02月16日
    浏览(63)
  • 最简单方法解决启动hive时报错:Exception in thread “main“ java.lang.RuntimeException: org.apache.hadoop.hdfs.serve

            相信很多人和我一样在启动完集群之后,通过“lsof -i:10000”检测是否启动成功时会遇到如下图这种情况: 等待许久依旧无法启动成功,从而DataGrip无法连接数据库。         经过回头检验发现在启动metastore后,hive检验时报错如下图: 很容易我们可以关注到:

    2024年04月29日
    浏览(69)
  • 记坑:flutter doctor --android-licenses 【报错】Exception in thread “main“ Android sdkmanager tool was foun

    配置flutter时,在Flutter console终端界面,因为SDK版本问题,一直报错,据网友说要安装JDK 8, 之后又是安装JDK 8, 又是修改环境变量,折腾好半天。因为在网上没看到相应的报错,记录一下 flutter doctor --android-licenses一直有错误,错误如下:    在报错信息的末尾,我看到有 \\\"And

    2024年02月11日
    浏览(43)
  • Git设置初始化默认分支为main

    github创建项目的默认分支为main。本地创建的git分支默认为master,每次在本地新建一个仓库再关联到remote,分支不统一。 git在2.28版本中提供了一个配置,指定在执行 git init 的时候生成的默认分支 本地git版本不够的话先升级; 如果使用homebrew安装的git,直接升级即可 或者可以

    2024年02月13日
    浏览(54)
  • Exception in thread “main“ java.lang.reflect.InvocationTargetException

    idea中app后台本地运行成功,但是打成jar包后运行,失败报错如下 原因分析:jar包运行存在问题,项目中有dockerfile文件,直接执行java -jar会报错,因为dockerfeil文件中配置了启动jar包的命令:    

    2024年02月08日
    浏览(46)
  • 已解决:Exception in thread “main“ java.lang.NoSuchMethodError

    分为两种情况,如果找不到自己写的某个方法,一般是main函数没加static之类的。这里讨论第二种情况:找不到第三方包中的某个方法。 这样的情况大概率是因为这个报错的包在Maven依赖中存在多个版本,存在版本冲突。如下面的报错就是因为google.protobuf这个包有多个版本,而

    2024年02月08日
    浏览(57)
  • 已解决Exception in thread “main“ java.lang.NullPointerException

    已解决Exception in thread “main” java.lang.NullPointerException Exception in thread “main“ java.lang.NullPointerException 对于异常 “Exception in thread “main” java.lang.NullPointerException” 的详细解决方法 下滑查看解决方法 可以按照以下步骤进行处理: 确定异常的位置:根据异常信息中提供的线程和

    2024年01月22日
    浏览(52)
  • 【Git】git初始化项目时 | git默认创建main分之 | 如何将git默认分支从main改为master

    在 Git 中,如果你在第一次提交后想要将默认分支名从 main 修改为 master,你可以按照以下步骤进行操作: 创建 master 分支: 首先,你需要在当前的 main 分支基础上创建一个新的 master 分支。使用以下命令: 删除 main 分支: 现在你已经创建了一个新的 master 分支,可以将 main

    2024年02月08日
    浏览(56)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包