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

运行DirectKafkaWordCount示例遇java.lang.NoClassDefFoundError求助

问题分析与解决

核心原因:Scala版本不兼容 + 依赖冲突

你遇到的java.lang.NoClassDefFoundError: scala/$less$colon$less错误,本质是Scala版本不匹配和依赖包冲突导致的:

  • 你同时指定了基于Scala 2.11的spark-streaming-kafka_2.11:1.6.3和基于Scala 2.13的spark-streaming-kafka-0-10_2.13:3.5.0,两种不同Scala版本的依赖会导致类加载混乱,找不到Scala标准库中的符号($less$colon$less对应Scala的::操作符)。
  • spark-streaming-kafka是适配Kafka 0.8/0.9的旧版连接器,spark-streaming-kafka-0-10是适配Kafka 0.10+的新版连接器,两者同时引入会引发依赖冲突。

解决步骤

  1. 统一Scala版本:根据你的Spark版本(这里用的是Spark 3.5.0,默认对应Scala 2.13),只保留对应Scala版本的依赖,删除Scala 2.11的旧版连接器。
  2. 移除冲突依赖:只保留适配Kafka 0.10+的spark-streaming-kafka-0-10连接器,因为Kafka 3.6.1属于高版本,和该连接器兼容。

修正后的运行命令

bin/run-example --packages "org.apache.kafka:kafka-clients:3.6.1,org.apache.spark:spark-streaming-kafka-0-10_2.13:3.5.0" streaming.DirectKafkaWordCount localhost:9092 consumer-group quickstart-events

额外检查点

  • 确认你的Spark集群安装版本是3.5.0,和指定的spark-streaming-kafka-0-10_2.13:3.5.0版本严格对应,避免版本不匹配。
  • 如果仍有问题,可以尝试清理本地Maven缓存(默认路径~/.m2/repository),重新拉取依赖包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:07:37