Apache Hudi 安装与配置文档
欢迎您在底部评论区留言,一起交流~
Apache Hudi 安装与配置文档
适用环境:大数据省赛样题4 - 模块A任务三
目标:在
Master 容器节点上,使用 Maven 编译 Hudi 源码,并与 Spark 集成,最终通过 spark-shell 验证 Hudi 功能。1. 前置条件
- 环境:已通过
docker exec -it master /bin/bash进入Master容器,并切换到root用户。
- 依赖:
- Maven:已安装并配置好本地仓库(
/opt/software/RepMaven/)和阿里云镜像。 - Spark:已安装并配置好
SPARK_HOME环境变量。 - Java:JDK 1.8 已正确配置。
- 验证前置条件:
2. 复制与解压 Hudi 安装包
- 复制安装包:
从宿主机的
/opt目录,将 Hudi 安装包(例如hudi-0.10.0-src.tar.gz)复制到容器Master的/opt/software目录中。 (注:此步骤通常在宿主机执行,命令如:docker cp /opt/hudi-0.10.0-src.tar.gz master:/opt/software/)
- 解压安装包:
在容器内,使用
tar命令将 Hudi 源码包解压到/opt/module/目录。
请将
hudi-0.10.0-src.tar.gz 替换为实际的文件名。- 进入 Hudi 目录:
请将目录名替换为实际解压后的目录名。
3. 替换关键文件(根据赛题提示)
根据赛题要求,在编译前需要替换三个文件。请确保您已从赛题资源中获取了正确的替换文件。
- 替换父模块
pom.xml: 将提供的pom.xml文件复制到 Hudi 项目的根目录,覆盖原文件。
- 替换
HoodieParquetDataBlock.java:
- 替换
hudi-spark-bundle/pom.xml:
- 替换
hudi-utilities-bundle/pom.xml:
4. 使用 Maven 编译 Hudi
在 Hudi 项目根目录下,执行 Maven 编译命令。根据赛题要求,需指定 Spark 3.1 和 Scala 2.12。
参数说明:
clean:清理上次构建的文件。
package:打包项目。
DskipTests:跳过单元测试,加速编译。
Dspark3.1:指定 Spark 3.1 版本。
Dscala-2.12:指定 Scala 2.12 版本。
DskipITs:跳过集成测试。
编译时间:此过程可能需要较长时间(10-30分钟),请耐心等待。
成功标志:当您在终端看到
BUILD SUCCESS 字样时,表示编译成功。5. 与 Spark 集成
编译成功后,Hudi 的 JAR 包会生成在
packaging/ 目录下的各个子模块中。我们需要将核心的 Spark Bundle JAR 包添加到 Spark 的 classpath 中。- 找到编译好的 JAR 包:
编译好的核心 JAR 包通常位于:
/opt/module/hudi-0.10.0/packaging/hudi-spark-bundle/target/hudi-spark3.1-bundle_2.12-0.10.0.jar(文件名中的版本号可能与您的源码版本一致)
- 将 JAR 包复制到 Spark 的 jars 目录:
6. 启动 spark-shell 验证 Hudi
使用
spark-shell 启动交互式环境,并运行赛题提供的官方 Quickstart 示例代码,以验证 Hudi 是否集成成功。在
spark-shell 中,逐行粘贴并执行以下 Scala 代码:预期结果:
如果一切配置正确,最后一行
show() 命令会输出一个包含 fare, begin_lon, begin_lat, ts 字段的表格,显示 fare 大于 20.0 的记录。截图要求:请将
spark-shell 中最终查询结果的截图,按赛题要求粘贴到 【Release\\模块A提交结果.docx】 中。至此,Hudi 的安装、编译、集成与验证已全部完成。
- 作者:神秘人
- 链接:https://blog.tianjiaji.top//url/279183c0-6139-8064-b231-da41932144ad
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。










