Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkAr

问题来源:

        在进行林子雨老师的大数据课程实验安装 Hive 仓库成功后,在启动 Hive 的时候,系统突然报这个错误,初步判定是 jar 包兼容性问题引起的报错,具体解决方法如下。

解决方法:

        首先考虑到 Hive 也是基于 Java 程序语言进行开发的,这么庞大的应用避免不了依赖一些功能 jar 包,所以进入 hive 安装目录下的 lib 依赖文件夹进行查看,首先找到最基础的 guava 依赖包,guava被认为是 Java 程序员开发必备的工具,可以对字符串、集合、并发、I/O、反射进行操作,所以一般依赖问题都会先找到该包与指定产品所依赖的 guava 包是否版本不兼容。查看后发现本机的依赖文件为 guava-19.0.jar,即该 jar 包的版本为 19.0。

        由于 hive 仓库是基于 Hadoop 的数据仓库,hive 底层是将用户输入的查询语句自动转换成 MapReduce 任务来执行,并把结果返回给用户。因此,hive 也是依赖 hadoop 的产品,所以我们进入 hadoop 的公共包 common 中查看我们上面说到的 guava 包,其中 common 文件夹在你电脑上 hadoop 安装目录下的 share/hadoop/common/lib 下,经过查看发现该路径下的 guava 功能包的版本为 27.0,故经过排查很有可能是因为 hive 自带的 guava 包版本过低导致的问题,故将 hive/lib/ 的 guava-19.0.jar 进行删除,然后将 hadoop/share/hadoop/common/lib 下的 guava-27.0.jar 拷贝一个到 hive/lib/ 下即可,然后重新启动 hive,发现启动成功,至此问题解决。

  • 12
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值