Spark Twitter流处理应用依赖报错:找不到org.apache.bahir模块
解决org.apache.bahir spark-streaming-twitter模块未找到的问题
看起来你遇到的是典型的依赖坐标不匹配或仓库配置缺失问题,我帮你梳理几个关键的修复点:
1. 对齐Bahir与Spark的版本兼容性
Bahir的Spark组件版本是和Spark官方版本严格绑定的——你用的是Spark 2.3.0,却引入了Bahir 2.0.0的包,这两个版本完全不匹配,自然找不到对应的模块。Spark 2.3.x对应的Bahir版本应该是2.3.0,这个版本才有适配Scala 2.11的发布包。
2. 补充必要的Maven仓库
部分Bahir的包可能不在默认的Maven Central仓库中,需要手动添加Apache官方仓库来确保依赖能被拉取到。
3. 优化Spark依赖的scope
Spark的core和streaming包在集群环境中是自带的,给它们加上Provided scope可以避免打包时出现依赖冲突。
修改后的完整build.sbt示例
version := "0.1" scalaVersion := "2.11.12" // 添加Apache官方仓库,确保能获取Bahir的依赖 resolvers += "Apache Releases" at "https://repository.apache.org/content/repositories/releases/" libraryDependencies ++= Seq( // 匹配Spark 2.3.0的Bahir版本,自动适配Scala 2.11 "org.apache.bahir" %% "spark-streaming-twitter" % "2.3.0", // 标记为Provided,避免与集群环境的Spark包冲突 "org.apache.spark" %% "spark-core" % "2.3.0" % Provided, "org.apache.spark" %% "spark-streaming" % "2.3.0" % Provided )
如果修改后还是拉取不到依赖,可以检查下网络连接,或者手动确认Maven仓库中是否存在spark-streaming-twitter_2.11-2.3.0这个包——它确实是存在的,所以只要配置正确就能解决问题。
内容的提问来源于stack exchange,提问作者Cassie
相关产品推荐
相关产品推荐

