繁体   English   中英

代码给出“线程“ main”中的异常” java.lang.NoClassDefFoundError”

[英]Code is giving “Exception in thread ”main“ java.lang.NoClassDefFoundError”

我添加了以下依赖项。 当我将spark-streaming_2.12更改为spark-streaming_2.11时,出现此错误

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/spark/streaming/StreamingContext

这些是我的依赖项:

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-streaming_2.12</artifactId>
      <version>2.4.0</version>
      <scope>provided</scope>
    </dependency>

    <dependency>
      <groupId>org.apache.spark</groupId>
      <artifactId>spark-core_2.11</artifactId>
      <version>2.4.0</version>
    </dependency>

我的代码:

def main(args: Array[String]): Unit = {

    val conf = new SparkConf().setAppName("LogProcessor")
    // No need to create sparkContext as StreamingContext itself create one
    val streamer = new StreamingContext(conf,Seconds(20))
    val lines =  streamer.textFileStream("/home/ubuntu/Desktop/test/")
    println(lines)

  }

我认为您可能在没有可用的流火花依赖项的环境中运行此程序(因此,它无法在其上找到类)。

在这种情况下,您可能需要将依赖项包含在jar本身中。 您可以尝试从火花流依赖项定义中删除<scope>provided</scope>

编辑:为了提供有关我认为这是为什么发生的原因的更多信息,可能您的环境在类路径中具有spark-streaming_2.12依赖项,但没有spark-streaming_2.11。 这就是为什么我认为您应该将其包括在超级罐子中(删除提供的部件)。 另外,您也可以在您的环境中包括依赖项,以便您的进程能够找到它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM