Исключение AbstractMethodError при создании экземпляра JavaStreamingContext - PullRequest
0 голосов
/ 11 января 2019

Я получаю исключение AbstractMethodError при создании JavaStreamingContext. Моя зависимость от pom, как показано ниже; Невозможно найти ключ, кто-нибудь может подсказать, что здесь не так?

    <dependency> <!-- Spark dependency -->
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency> <!-- Spark dependency -->
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <version>2.2.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10 -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
        <version>2.0.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.10</artifactId>
        <version>0.8.2.2</version>
    </dependency>

Исключение в потоке "main" java.lang.AbstractMethodError в org.apache.spark.util.ListenerBus $ class. $ init $ (ListenerBus.scala: 35) в org.apache.spark.streaming.scheduler.StreamingListenerBus. (StreamingListenerBus.scala: 30) в org.apache.spark.streaming.scheduler.JobScheduler. (JobScheduler.scala: 57) в org.apache.spark.streaming.StreamingContext. (StreamingContext.scala: 184) в org.apache.spark.streaming.StreamingContext. (StreamingContext.scala: 76) в org.apache.spark.streaming.api.java.JavaStreamingContext. (JavaStreamingContext.scala: 130)

1 Ответ

0 голосов
/ 11 января 2019

Вы смешиваете много версий Spark здесь
Прежде всего, если вы используете Apache Spark 2.3.1 и kafka 0.10 +

Я предлагаю следующее:

<dependency> <!-- Spark dependency -->
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-sql_2.11</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency> <!-- Spark dependency -->
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-core_2.11</artifactId>
        <version>2.3.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.5</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming_2.11</artifactId>
        <!-- Keep the same Spark version as before -->
        <version>2.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-streaming-kafka-0-10 -->
    <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-10_2.11</artifactId>
        <!-- Keep the same Spark version as before -->
        <version>2.3.1</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.kafka/kafka -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.10</artifactId>
        <!-- Support for kafka version 0.8 is deprecated as of Spark 2.3.1 and you add the dependencies for kafka 0.10+ above -->
        <version><your_kafka_version_0.10+></version>
    </dependency>

Было бы неплохо узнать, как вы строите / разворачиваете свое приложение? в соответствии с вашей средой выполнения вы можете захотеть добавить некоторую предусмотренную область, чтобы предотвратить конфликт между собранным пакетом и существующей средой.

Надеюсь, это поможет

...