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

Azure Databricks中安装azure-storage-file-share依赖库失败求助

Azure Databricks中安装azure-storage-file-share依赖库失败求助

看起来你遇到了个挺棘手的依赖安装问题——之前用Maven在Databricks里装azure-storage-file-share好好的,现在突然因为netty的native依赖找不到报错,手动下载了对应jar还是不行。我帮你捋捋问题根源和可行的解决方向:

问题根源分析

从你的日志能看出核心矛盾:

downloading https://maven-central.storage-download.googleapis.com/maven2/io/netty/netty-transport-native-kqueue/4.1.86.Final/netty-transport-native-kqueue-4.1.86.Final-osx-x86_64.jar ... [SUCCESSFUL ] io.netty#netty-transport-native-kqueue;4.1.86.Final!netty-transport-native-kqueue.jar (202ms)

你下载的是macOS平台专属的netty-transport-native-kqueue包,但Azure Databricks集群用的是Linux节点,系统自然找不到对应Linux版本的jar,才会抛出错误:

java.io.FileNotFoundException: File file:/local_disk0/tmp/clusterWideResolutionDir/maven/ivy/jars/io.netty_netty-transport-native-kqueue-4.1.86.Final.jar does not exist

手动装的mac版本jar和Linux环境不兼容,所以问题依然存在。

具体解决办法

1. 排除mac专属依赖,替换为Linux兼容版本

在Databricks添加Maven库时,直接排除kqueue依赖,同时添加Linux专用的epoll版本netty:

  • 先添加带排除项的azure-storage-file-share坐标:
    com.azure:azure-storage-file-share:12.16.2,exclusions=[io.netty:netty-transport-native-kqueue]
    
  • 再单独添加Linux版本的netty依赖:
    io.netty:netty-transport-native-epoll:4.1.86.Final:linux-x86_64
    

这样Maven会自动拉取适配Linux的native库,避免路径找不到的问题。

2. 清理集群缓存并重启

Databricks的库安装缓存偶尔会残留旧的依赖路径,导致解析出错。你可以:

  • 删除集群上所有相关的自定义库
  • 重启集群
  • 重新只安装com.azure:azure-storage-file-share:12.16.2,让Maven自动解析正确的依赖链,不要手动添加netty

3. 升级azure-storage-file-share版本

依赖兼容问题有时候会在新版本中被修复,你可以试试升级到最新稳定版(比如12.20.0),看是否还会触发这个netty依赖问题。

4. 用集群初始化脚本兜底

如果Maven安装始终有问题,可以用集群初始化脚本手动部署依赖:

  • 编写shell脚本,下载对应Linux版本的netty jar到集群的/databricks/jars目录
  • 在集群设置中添加这个初始化脚本,重启集群后依赖会自动加载到Spark的classpath中

额外提示

如果以上方法都不管用,可以去查看集群的driver日志(路径:/databricks/driver/logs),里面有更详细的依赖解析过程,能帮你定位是否有其他隐藏的依赖冲突。

备注:内容来源于stack exchange,提问作者Nathan Bruce

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.23 15:27:39