Hudi数据湖技术引领大数据新风口(三)解决spark模块依赖冲突

news2024/9/24 23:24:04

文章目录

    • 解决spark模块依赖冲突
      • 2.2.6 执行编译命令
      • 2.2.7 编译成功
    • 下一章 核心概念
    • 后记

解决spark模块依赖冲突

修改了Hive版本为3.1.2,其携带的jetty是0.9.3,hudi本身用的0.9.4,存在依赖冲突。

1)修改hudi-spark-bundle的pom文件,排除低版本jetty,添加hudi指定版本的jetty:

vim /opt/software/hudi-0.12.0/packaging/hudi-spark-bundle/pom.xml

在382行的位置,修改如下(红色部分):

<!-- Hive -->

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-service</artifactId>

   <version>${hive.version}</version>

   <scope>${spark.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <artifactId>guava</artifactId>

​     <groupId>com.google.guava</groupId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.pentaho</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-service-rpc</artifactId>

   <version>${hive.version}</version>

   <scope>${spark.bundle.hive.scope}</scope>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-jdbc</artifactId>

   <version>${hive.version}</version>

   <scope>${spark.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>javax.servlet</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>javax.servlet.jsp</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-metastore</artifactId>

   <version>${hive.version}</version>

   <scope>${spark.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>javax.servlet</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.datanucleus</groupId>

​     <artifactId>datanucleus-core</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>javax.servlet.jsp</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <artifactId>guava</artifactId>

​     <groupId>com.google.guava</groupId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-common</artifactId>

   <version>${hive.version}</version>

   <scope>${spark.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>org.eclipse.jetty.orbit</groupId>

​     <artifactId>javax.servlet</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

</dependency>

 

  <!-- 增加hudi配置版本的jetty -->

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-server</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-util</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-webapp</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-http</artifactId>

   <version>${jetty.version}</version>

  </dependency>

否则在使用spark向hudi表插入数据时,会报错如下:

java.lang.NoSuchMethodError: org.apache.hudi.org.apache.jetty.server.session.SessionHandler.setHttpOnly(Z)V

img

2)修改hudi-utilities-bundle的pom文件,排除低版本jetty,添加hudi指定版本的jetty:

vim /opt/software/hudi-0.12.0/packaging/hudi-utilities-bundle/pom.xml

在405行的位置,修改如下(红色部分):

  <!-- Hoodie -->

  <dependency>

   <groupId>org.apache.hudi</groupId>

   <artifactId>hudi-common</artifactId>

   <version>${project.version}</version>

   <exclusions>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

  <dependency>

   <groupId>org.apache.hudi</groupId>

   <artifactId>hudi-client-common</artifactId>

   <version>${project.version}</version>

   <exclusions>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

 

 

<!-- Hive -->

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-service</artifactId>

   <version>${hive.version}</version>

   <scope>${utilities.bundle.hive.scope}</scope>

   <exclusions>

​		<exclusion>

​     <artifactId>servlet-api</artifactId>

​     <groupId>javax.servlet</groupId>

​    </exclusion>

​    <exclusion>

​     <artifactId>guava</artifactId>

​     <groupId>com.google.guava</groupId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.pentaho</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-service-rpc</artifactId>

   <version>${hive.version}</version>

   <scope>${utilities.bundle.hive.scope}</scope>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-jdbc</artifactId>

   <version>${hive.version}</version>

   <scope>${utilities.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>javax.servlet</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>javax.servlet.jsp</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-metastore</artifactId>

   <version>${hive.version}</version>

   <scope>${utilities.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>javax.servlet</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.datanucleus</groupId>

​     <artifactId>datanucleus-core</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>javax.servlet.jsp</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

​    <exclusion>

​     <artifactId>guava</artifactId>

​     <groupId>com.google.guava</groupId>

​    </exclusion>

   </exclusions>

  </dependency>

 

  <dependency>

   <groupId>${hive.groupid}</groupId>

   <artifactId>hive-common</artifactId>

   <version>${hive.version}</version>

   <scope>${utilities.bundle.hive.scope}</scope>

   <exclusions>

​    <exclusion>

​     <groupId>org.eclipse.jetty.orbit</groupId>

​     <artifactId>javax.servlet</artifactId>

​    </exclusion>

​    <exclusion>

​     <groupId>org.eclipse.jetty</groupId>

​     <artifactId>*</artifactId>

​    </exclusion>

   </exclusions>

</dependency>

 

  <!-- 增加hudi配置版本的jetty -->

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-server</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-util</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-webapp</artifactId>

   <version>${jetty.version}</version>

  </dependency>

  <dependency>

   <groupId>org.eclipse.jetty</groupId>

   <artifactId>jetty-http</artifactId>

   <version>${jetty.version}</version>

  </dependency>

否则在使用DeltaStreamer工具向hudi表插入数据时,也会报Jetty的错误。

2.2.6 执行编译命令

mvn clean package -DskipTests -Dspark3.2 -Dflink1.13 -Dscala-2.12 -Dhadoop.version=3.1.3 -Pflink-bundle-shade-hive3

2.2.7 编译成功

编译成功后,进入hudi-cli说明成功:

img

img

编译完成后,相关的包在packaging目录的各个模块中:

img

比如,flink与hudi的包:

img

下一章 核心概念

后记

📢博客主页:https://manor.blog.csdn.net

📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!
📢本文由 Maynor 原创,首发于 CSDN博客🙉
📢不能老盯着手机屏幕,要不时地抬起头,看看老板的位置⭐
📢数据湖专栏持续更新,欢迎订阅:https://blog.csdn.net/xianyu120/category_12388063.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/798218.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

QVariant

QVariant 标准类型构造函数将支持的类型的数据设置到QVariant对象中将QVariant对象转换为实际的数据类型 自定义类型 标准类型 构造函数 // 这类转换需要使用QVariant类的构造函数, 由于比较多, 大家可自行查阅Qt帮助文档, 在这里简单写几个 QVariant::QVariant(int val); QV…

文件命名简化!一键将电脑文件名从简体中文转换为西班牙语

您是否曾经被电脑上的简体中文文件名搞得头疼不已&#xff1f;通过一键将文件名从简体中文转换为西班牙语&#xff0c;让您的文件管理更加便捷和高效&#xff01;现在&#xff0c;我们向您推荐一款革命性的软件&#xff0c;为您带来无与伦比的文件命名体验。 首先第一步&#…

Ansible 自动化运维工具

Ansible简介 Ansible是一个基于Python开发的配置管理和应用部署工具&#xff0c;现在也在自动化管理领域大放异彩。它融合了众多老牌运维工具的优点&#xff0c;Pubbet和Saltstack能实现的功能&#xff0c;Ansible基本上都可以实现。 Ansible能批量配置、部署、管理上千台主机。…

在亚马逊平台,如何有效举报违规行为?

众所周知&#xff0c;在每个行业都有一些违规现象&#xff0c;甚至这些违规现象还会给自己带来利益方面的损失&#xff0c;一旦触犯到自己的利益的话&#xff0c;那自己是需要想办法解决的&#xff0c;想办法规避。 就拿开亚马逊店铺来说&#xff0c;比较容易遇到的就是产品侵…

Windows用户如何安装新版本cpolar内网穿透

在科学技术高度发达的今天&#xff0c;我们身边充斥着各种电子产品&#xff0c;这些电子产品不仅为我们的工作带来极大的便利&#xff0c;也让生活变得丰富多彩。我们可以使用便携的电子设备&#xff0c;记录下生活中精彩和有趣的瞬间&#xff0c;并通过互联网方便的与大家分享…

Clion开发Stm32之温湿度传感器(DS18B20)驱动编写和测试

前言 涵盖之前文章: Clion开发STM32之HAL库GPIO宏定义封装(最新版)Clion开发stm32之微妙延迟(采用nop指令实现)Clion开发STM32之日志模块(参考RT-Thread) DSP18B20驱动文件 头文件 /*******************************************************************************Copy…

Kafka入门到起飞系列 - 副本机制,什么是副本因子呢?

我们一直在讲一个主题会有多个分区&#xff0c;这多个分区可以分布在一台服务器上&#xff0c;也可以分布在多台服务器上&#xff0c;还可以增加分区&#xff08;Kafka目前只支持分区&#xff09;&#xff0c;这是Kafka提供的一种横向扩展的手段 比如我们创建了一个主题&#x…

Scala项目找不到或无法加载主类

目录 1&#xff0c;出错背景2&#xff0c;分析与解决 1&#xff0c;出错背景 Scala项目无法创建scale和Java文件。项目没有报错&#xff0c;但执行时项目总是找不到项目下的类&#xff0c;报错信息如下所示&#xff1a; 错误: 找不到或无法加载主类 com.my.memTestCheck但该类…

第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面

文章目录 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面使用 HL7 架构结构页面查看文档类型列表查看消息结构查看段结构 第三章 HL7 架构和可用工具 - 使用 HL7 架构结构页面 使用 HL7 架构结构页面 通过 HL7 架构页面&#xff0c;可以导入和查看 HL7 版本 2 架构规范。…

[PAT甲级] 1001 A+B Format [Python3]

题目描述&#xff1a; Calculate ab and output the sum in standard format -- that is, the digits must be separated into groups of three by commas (unless there are less than four digits). Input Specification: Each input file contains one test case. Each c…

【Hive实战】Hive的压缩池与锁

文章目录 Hive的压缩池池的分配策略自动分配手动分配隐式分配 池的等待超时Labeled worker pools 标记的工作线程&#xff08;自定义线程池&#xff09;Default pool 默认池Worker allocation 工作线程的分配 锁Turn Off ConcurrencyDebuggingConfigurationhive.support.concur…

超详细的74HC595应用指南(以stm32控制点阵屏为例子)

74HC595是一款常用的串行输入/并行输出&#xff08;Serial-in/Parallel-out&#xff09;移位寄存器芯片&#xff0c;在数字电子领域有着广泛的应用。它具有简单的接口和高效的扩展能力&#xff0c;成为了许多电子爱好者和工程师们的首选之一。本文将深入介绍74HC595芯片的功能、…

019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识

019 - STM32学习笔记 - Fatfs文件系统&#xff08;一&#xff09; - FatFs文件系统初识 最近工作比较忙&#xff0c;没时间摸鱼学习&#xff0c;抽空学点就整理一点笔记。 1、文件系统 在之前学习Flash的时候&#xff0c;可以调用SPI_FLASH_BufferWrite函数&#xff0c;将数…

【Terraform学习】Terraform-AWS部署快速入门(快速入门)

Terraform-AWS部署快速入门 实验步骤 连接到 Terraform 环境 SSH 连接到Terraform 环境(名为MyEC2Instance的实例) 在 Amazon Web Services &#xff08;AWS&#xff09; 上预置 EC2 实例 用于描述 Terraform 中基础结构的文件集称为 Terraform 配置。您将编写一个配置来定义…

【视觉SLAM入门】5.1 非线性最小二乘理论 ------线搜索,信赖域,最速/牛顿下降法,高斯牛顿,LM等原理推导

"天之道也" 0. 引入1. 最速下降法2. 牛顿法3. (实用)G-N法4. (实用)L-M方法5. 总结 注意&#xff1a; 上一节得到的最小二乘问题&#xff0c;本节来讨论---- 求解非线性最小二乘问题 \color {red}求解非线性最小二乘问题 求解非线性最小二乘问题 0. 引入 求解这个简…

el-upload上传图片和视频,支持预览和删除

话不多说&#xff0c; 直接上代码&#xff1a; 视图层&#xff1a; <div class"contentDetail"><div class"contentItem"><div style"margin-top:5px;" class"label csAttachment">客服上传图片:</div><el…

【spring】spring bean的生命周期

spring bean的生命周期 文章目录 spring bean的生命周期简介一、bean的创建阶段二、bean的初始化阶段三、bean的销毁阶段四、spring bean的生命周期总述 简介 本文测试并且介绍了spring中bean的生命周期&#xff0c;如果只想知道结果可以跳到最后一部分直接查看。 一、bean的…

创建维基WIKI百科和建立百度百科有何不同?

很多企业有出口业务&#xff0c;想在互联网上开展全球性网络营销&#xff0c;维基百科往往被认为是开展海外营销的第一站。其作用相当于开展国内网络营销的百度百科&#xff0c;经常有些企业给小马识途营销顾问提供的词条内容就是百度百科的内容&#xff0c;可事实上两个平台的…

无人机影像配准并发布(共线方程)

无人机影像 DEM 计算四个角点坐标&#xff08;刚性变换&#xff09; 像空间坐标&#xff08;x,y,-f&#xff09; 像空间坐标畸变纠正 deltax,deltay 已知(x,y)&#xff0c;求解(X,Y, Z)或者(Lat,Lon) 这里的Z是DEM上获取的坐标和Zs为相机坐标的高程&#xff0c;如果均为已…

水文章——推荐一个视频播放器和一个图片查看器

视频播放器——PotPlayer http://www.potplayercn.com/ 图片查看器——JPEGVIEW https://www.bilibili.com/video/BV1ZY411P7fX/?spm_id_from333.337.search-card.all.click&vd_sourceab35b4ab4f3968642ce6c3f773f85138