【问题排查】hadoop-shaded-guava依赖问题

hadoop-shaded-guava依赖问题

报错信息如下:

shell 复制代码
java.lang.NoClassDefFoundError: org/apache/hadoop/thirdpart/com/goole/common/base/Preconditions
at org.apache.hadoop.fs.aliyun.oss.AliyunOssUtils.loginOPtion(AliyunOssUtils.java 221)

从日志可以看出是因为缺失某个依赖导致。

我先说说我的排查方向,比较笨重

  1. 通过IDEA全局搜索这个类,发现没有这个类
  2. 最开始看到这个报错以为是guava包冲突了,就在pom.xml文件里面排除guava包,打包后发现还是不行,妥协了根据报错信息慢慢找
  3. 从报错的代码位置进行排查(发现AliyunOssUtils类import了org/apache/hadoop/thirdpart/com/goole/common/base/Preconditions这个类),

因为代码逻辑是利用spark读取S3文件用到了hadoop-aliyun的依赖,而adoop-aliyun依赖在AliyunOssUtils类中import了org/apache/hadoop/thirdpart/com/goole/common/base/Preconditions类,hadoop原生的依赖包并不会提供该依赖的支持所以在spark-submit时报错。知道问题就比较好解决了。

如果不了解 hadoop-shaded-guava 这个jar,可以去maven仓库下载,具体地址:https://mvnrepository.com/

搜索hadoop-shaded-guava

选择具体版本即可

找到对应版本引入导pom.xml文件即可。

xml 复制代码
<dependency>
    <groupId>org.apache.hadoop.thirdparty</groupId>
    <artifactId>hadoop-shaded-guava</artifactId>
    <version>1.3.0</version>
</dependency>
相关推荐
小园子的小菜10 小时前
深入理解Elasticsearch内部线程池:类型与核心作用解析
大数据·elasticsearch·搜索引擎
梦里不知身是客1111 小时前
flume的数据模型介绍
大数据·flume
winfield82111 小时前
推荐/搜索系统的召回、精排、粗排、打散这四个环节都是做什么的?
大数据·人工智能
写代码的【黑咖啡】12 小时前
大数据中的数据同步预处理:保障数据质量的第一道防线
大数据
Hello.Reader12 小时前
Flink SQL Time Travel用 FOR SYSTEM_TIME AS OF 查询历史快照
大数据·sql·flink
2501_9247949012 小时前
企业AI转型为何难?——从“不敢用”到“用得稳”的路径重构
大数据·人工智能·重构
Tezign_space12 小时前
小红书内容运营工具怎么选?专业视角拆解优质工具核心标准
大数据·人工智能·内容运营
康实训12 小时前
养老实训室建设标准指南
大数据·人工智能·实训室·养老实训室·实训室建设
梦里不知身是客1113 小时前
hive中metastore 服务的意义
数据仓库·hive·hadoop
semantist@语校14 小时前
第五十五篇|从解释约束到结构化认知:京都国际学院的语言学校Prompt工程化实践
大数据·数据库·人工智能·python·百度·prompt·知识图谱