scala - 线程 "main"java.lang.NoClassDefFoundError : org/apache/spark/streaming/StreamingContext 中的异常

标签 scala apache-spark intellij-idea sbt spark-streaming

大家好,下面的代码中似乎找不到 StreamingContext 类。

import org.apache.spark.streaming.{Seconds, StreamingContext}
import org.apache.spark.{SparkConf, SparkContext}
object Exemple {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setMaster("local[*]").setAppName("Exemple")
    val sc = new SparkContext(conf)
    val ssc = new StreamingContext(sc, Seconds(2)) //this line throws error

  }
}

这是错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/StreamingContext
    at Exemple$.main(Exemple.scala:16)
    at Exemple.main(Exemple.scala)
Caused by: java.lang.ClassNotFoundException: org.apache.spark.streaming.StreamingContext
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:338)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 2 more

Process finished with exit code 1

我使用以下 build.sbt 文件:
name := "exemple"

version := "1.0.0"

scalaVersion := "2.11.11"

// https://mvnrepository.com/artifact/org.apache.spark/spark-sql
libraryDependencies += "org.apache.spark" %% "spark-sql" % "2.2.0"
// https://mvnrepository.com/artifact/org.apache.spark/spark-streaming
libraryDependencies += "org.apache.spark" %% "spark-streaming" % "2.2.0" % "provided"
// https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10
libraryDependencies += "org.apache.spark" %% "spark-streaming-kafka-0-10" % "2.2.0"

我使用 intellij Run 按钮运行示例类,但出现错误。在 sbt shell 中它工作正常。进入我的依赖模块,我可以找到 Spark 依赖。代码在 intellij 中编译。我可以在外部库中看到 spark 依赖项(在左侧项目面板内)。
你有什么主意吗。看起来并不复杂。

enter image description here

最佳答案

请删除 provided来自 spark-streaming 库的术语。

libraryDependencies += "org.apache.spark" %% "spark-streaming" % "2.2.0" 

更改后,仍然存在进一步的依赖性问题,请排除重复的 jar。
 "org.apache.spark" %% "spark-streaming-kafka-0-10" % "2.2.0" excludeAll(
      ExclusionRule(organization = "org.spark-project.spark", name = "unused"),
      ExclusionRule(organization = "org.apache.spark", name = "spark-streaming"),
      ExclusionRule(organization = "org.apache.hadoop")
    ),

希望这可以帮助。

谢谢
拉维

关于scala - 线程 "main"java.lang.NoClassDefFoundError : org/apache/spark/streaming/StreamingContext 中的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49079222/

相关文章:

java - Scala 将很长的字符串解析为日期

scala - Scala 部署中的 Play 框架

scala - 为什么 Typesafe 激活器命令 `activator dependencies` 不起作用?

java - 智能 : Set source compatability version plus make suggestions no longer suggest unsupported features

scala - 私有(private)[此] 与私有(private)

hadoop - rdd.saveAsTextFile 似乎不起作用,但重复抛出 FileAlreadyExistsException

azure - 如何使用scala并从Azure blob存储读取文件?

apache-spark - 根据 pyspark 中的条件聚合值

java - 错误 "The matching wildcard is strict, but no declaration can be found for element ' 上下文 :annotation-config'"via tomcat7

java - newConcurrentHashSet() 无法从 IntelliJ 中的 com.google.guava 解析?