Как приоритизировать зависимость maven от пути к классу Spark при отправке задания Spark? - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть дистрибутив Cloudera Hadoop, Spark и т. Д., Где версия Spark-Kafka - 0,8 (т.е. spark-streaming-kafka-0-8_2.11).

Проблема в том, что версия 0.8Apache Spark с Kafka Integration имеет встроенную версию Kafka 0.8.2.1, и мне требуется 0.10.0.1.

Есть ли способ обойти это?Я не хочу использовать spark-streaming-kafka-0-10_2.11, потому что это не стабильная версия.

Я пытался добавить это в свои зависимости maven (упаковка с jar-файлами), но путь к классамприоритет над моими зависимостями maven.

   <dependency>
        <groupId>org.apache.spark</groupId>
        <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
        <version>2.3.0.cloudera1</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.kafka</groupId>
                <artifactId>kafka_2.11</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.11</artifactId>
        <version>0.10.0.1</version>
    </dependency>

1 Ответ

0 голосов
/ 28 декабря 2018

Вам нужно поставить зависимость kafka выше зависимости искры, чтобы она выглядела примерно так:

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.11</artifactId>
    <version>0.10.0.1</version>
</dependency>

<dependency>
     <groupId>org.apache.spark</groupId>
     <artifactId>spark-streaming-kafka-0-8_2.11</artifactId>
     <version>2.3.0.cloudera1</version>
     <exclusions>
         <exclusion>
             <groupId>org.apache.kafka</groupId>
             <artifactId>kafka_2.11</artifactId>
         </exclusion>
     </exclusions>
</dependency>
...