Lazy loaded image
Apache Hudi 安装与配置文档
字数 1112阅读时长 3 分钟
2025-9-25
2025-9-25

Apache Hudi 安装与配置文档

💡
欢迎您在底部评论区留言,一起交流~

Apache Hudi 安装与配置文档

适用环境:大数据省赛样题4 - 模块A任务三
目标:在 Master 容器节点上,使用 Maven 编译 Hudi 源码,并与 Spark 集成,最终通过 spark-shell 验证 Hudi 功能。

1. 前置条件

  1. 环境:已通过 docker exec -it master /bin/bash 进入 Master 容器,并切换到 root 用户。
  1. 依赖
      • Maven:已安装并配置好本地仓库(/opt/software/RepMaven/)和阿里云镜像。
      • Spark:已安装并配置好 SPARK_HOME 环境变量。
      • Java:JDK 1.8 已正确配置。
  1. 验证前置条件

    2. 复制与解压 Hudi 安装包

    1. 复制安装包: 从宿主机的 /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/
    1. 解压安装包: 在容器内,使用 tar 命令将 Hudi 源码包解压到 /opt/module/ 目录。
      1. 请将 hudi-0.10.0-src.tar.gz 替换为实际的文件名。
    1. 进入 Hudi 目录
      1. 请将目录名替换为实际解压后的目录名。

    3. 替换关键文件(根据赛题提示)

    根据赛题要求,在编译前需要替换三个文件。请确保您已从赛题资源中获取了正确的替换文件。
    1. 替换父模块 pom.xml: 将提供的 pom.xml 文件复制到 Hudi 项目的根目录,覆盖原文件。
      1. 替换 HoodieParquetDataBlock.java
        1. 替换 hudi-spark-bundle/pom.xml
          1. 替换 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 中。
            1. 找到编译好的 JAR 包: 编译好的核心 JAR 包通常位于: /opt/module/hudi-0.10.0/packaging/hudi-spark-bundle/target/hudi-spark3.1-bundle_2.12-0.10.0.jar(文件名中的版本号可能与您的源码版本一致)
            1. 将 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 的安装、编译、集成与验证已全部完成。
              上一篇
              Python的奇妙短路逻辑与运算符优先级
              下一篇
              Apache Flume 1.9.0 安装与配置文

              评论
              Loading...