You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何顺利运行Apache Hudi Hive同步工具?依赖兼容问题求助

解决Hudi Hive同步工具依赖冲突与运行问题

1. 使用官方预编译包运行(推荐)

  • 直接下载对应版本的Hudi完整预编译包(非源码包),解压后进入hudi-sync/hudi-hive-sync目录,执行自带的run-sync-tools.sh脚本。
  • 预编译包已包含所有依赖jar,无需手动添加或修改配置,可直接规避ClassNotFoundException和版本冲突问题。
  • 示例运行命令:
    ./run-sync-tools.sh --jdbc-url jdbc:hive2://<hive-host>:10000 --database <db-name> --table <table-name> --base-path <hudi-table-base-path> --sync-mode hms
    

2. 基于源码用Maven Exec插件运行

  • 无需手动修改依赖的provided scope,直接通过Maven的exec:java插件拉取所有必要依赖并运行:
    mvn exec:java -Dexec.mainClass="org.apache.hudi.hive.HiveSyncTool" -Dexec.args="--jdbc-url jdbc:hive2://<hive-host>:10000 --database <db-name> --table <table-name> --base-path <hudi-table-base-path> --sync-mode hms" -pl hudi-sync/hudi-hive-sync -am
    
  • 该方式会自动处理依赖传递,确保版本对齐,避免手动调整scope引发的冲突。

3. 彻底解决Parquet-Avro版本冲突

  • 不要单独修改Parquet或Avro的版本,直接复用Hudi源码中dependencyManagement定义的统一版本:
    • 若自定义pom,导入Hudi的bom来强制统一所有依赖版本:
      <dependencyManagement>
        <dependencies>
          <dependency>
            <groupId>org.apache.hudi</groupId>
            <artifactId>hudi-bom</artifactId>
            <version>${hudi.version}</version>
            <type>pom</type>
            <scope>import</scope>
          </dependency>
        </dependencies>
      </dependencyManagement>
      

内容的提问来源于stack exchange,提问作者oceansize

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 18:17:35