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

Spark-Cassandra-Connector环境下spark-shell启动失败求助

解决Spark-Shell启动时Netty依赖下载失败问题

你这情况明显是Spark解析依赖时,只盯着本地M2缓存local-m2-cache找io.netty#netty-all;4.0.33.Final,但本地缓存里压根没这个jar包,所以直接报错失败了;而另一台机器能正常从中央仓库拉取,所以启动毫无问题。我给你几个靠谱的解决办法:

方法1:清理本地缓存,让Spark重新拉取依赖

Spark默认用Ivy管理依赖,先把本地的缓存目录清掉,让它重新从远程仓库下载:

  • 清理Ivy缓存:rm -rf /home/nmj/.ivy2/cache
  • 清理M2缓存里的netty相关目录:rm -rf /home/nmj/.m2/repository/io/netty/netty-all/4.0.33.Final
  • 重新执行你的spark-shell启动命令,这次Spark会自动从中央仓库拉取缺失的依赖包

方法2:启动时强制指定中央仓库

如果本地的仓库配置优先级有问题,直接在启动命令里加上参数,强制Spark用中央仓库:

spark-shell -v --master spark://storm.c.gcp20170324.internal:7077 \
--packages datastax:spark-cassandra-connector:2.0.6-s_2.11 \
--conf spark.cassandra.connection.host=10.128.0.4 \
--conf spark.cassandra.read.timeout_ms=2400000 \
--conf spark.cassandra.query.retry.count=600 \
--conf spark.cassandra.connection.timeout_ms=50000 \
--conf spark.cassandra.input.split.size_in_mb=67108864 \
--conf spark.network.timeout=600s \
--conf spark.executor.heartbeatInterval=100s \
--conf spark.jars.repositories=https://repo1.maven.org/maven2/

方法3:手动下载jar包放到本地缓存

要是网络受限没法从远程拉取,那就手动搞:

  1. 先创建对应的缓存目录:mkdir -p /home/nmj/.m2/repository/io/netty/netty-all/4.0.33.Final
  2. 把netty-all-4.0.33.Final.jar下载好,放到这个目录里,确保文件名完全匹配
  3. 再重新跑spark-shell启动命令就行

方法4:检查本地仓库配置

看看你的~/.ivy2/ivysettings.xml或者~/.m2/settings.xml,确认有没有配置中央仓库,别把本地仓库设成了唯一的依赖源。要是有镜像或者仓库优先级的配置,调整成优先从中央仓库拉取依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:23:06