簡體   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