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

Alluxio2.7.4编译指定Hadoop3.1.1报错是否为不支持该版本?

问题解答

这个报错不代表Hadoop 3.1.1版本不受Alluxio 2.7.4支持,本质是编译时依赖缺失导致的构建失败。

报错根因

Alluxio为了屏蔽Hadoop客户端和自身其他依赖的版本冲突,会对Hadoop相关依赖做shaded重打包,生成alluxio-shaded-hadoop制品。这个制品不会把所有Hadoop版本对应的包都上传到Maven中央仓库,当你指定自定义的Hadoop版本(比如此处的3.1.1)、又只单独编译underfs/hdfs模块时,Maven既无法从中央仓库拉取对应版本的shaded包,本地仓库也没有提前编译好的对应依赖,就会抛出找不到制品的错误。

解决方案

你可以二选一执行:

  • 方案一:给原命令加-am参数,让Maven自动编译当前模块依赖的所有本地子模块,自动处理依赖顺序,修改后命令如下:
mvn -T 4C clean install -pl underfs/hdfs/ -am \
-Dmaven.javadoc.skip=true -DskipTests -Dlicense.skip=true \
-Dcheckstyle.skip=true -Dfindbugs.skip=true \
-Pufs-hadoop-3 -Dufs.hadoop.version=3.1.1
  • 方案二:分两步编译,先把对应版本的shaded Hadoop模块安装到本地Maven仓库,再编译hdfs underfs模块:
    1. 第一步编译shaded模块:
    mvn -T 4C clean install -pl shaded/hadoop/ \
    -Dmaven.javadoc.skip=true -DskipTests -Dlicense.skip=true \
    -Dcheckstyle.skip=true -Dfindbugs.skip=true \
    -Pufs-hadoop-3 -Dufs.hadoop.version=3.1.1
    
    1. 第一步执行成功后,再执行你原本的hdfs模块编译命令即可。

注意:编译全程保持Alluxio源码版本一致,不要中途切换源码分支或修改版本配置,避免出现本地依赖版本不匹配的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 06:03:23