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

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

一、问题描述

安装好hive后执行初始化命令

[root@bigdata111 hive-3.1.2]# bin/schematool -dbType derby -initSchema

报错信息如下:

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: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:318)
	at org.apache.hadoop.util.RunJar.main(RunJar.java:232)

二、问题原因及解决方法

执行初始化命令时发生报错是因为:hadoop和hive的两个guava.jar版本不一致

hive中版本为:guava-19.0.jar
hadoop中的版本为:guava-27.0-jre.jar

第一步:删除hive里的guava-19.0.jar
(1)先到hive的lib目录里

[root@bigdata111 hive-3.1.2]# cd lib/

(2)再用命令rm -fr 删除guava.jar

[root@bigdata111 lib]# rm -fr guava-19.0.jar

第二步:把hadoop里的guava-27.0-jre.jar复制到hive里
(1)先到hadoop的lib目录里

[root@bigdata111 module]# cd hadoop-3.1.3/share/hadoop/common/lib/

(2)用cp指令复制到hive

[root@bigdata111 lib]# cp -r guava-27.0-jre.jar /opt/module/hive-3.1.2/lib/

第三步:回到hive, 再次执行初始化命令

[root@bigdata111 hive-3.1.2]# bin/schematool -dbType derby -initSchema
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

可以发现问题完美解决!!!文章来源地址https://www.toymoban.com/news/detail-690146.html

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

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

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

相关文章

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

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

    2024年02月07日
    浏览(34)
  • 解决报错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日
    浏览(47)
  • 报错: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日
    浏览(36)
  • 最简单方法解决启动hive时报错:Exception in thread “main“ java.lang.RuntimeException: org.apache.hadoop.hdfs.serve

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

    2024年04月29日
    浏览(52)
  • 记坑: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日
    浏览(33)
  • Git设置初始化默认分支为main

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

    2024年02月13日
    浏览(35)
  • 已解决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日
    浏览(36)
  • Exception in thread “main“ java.lang.reflect.InvocationTargetException

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

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

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

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

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

    2024年02月08日
    浏览(43)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包