0

我有 Hadoop、Spark 等的 Cloudera 发行版,其中 Spark-Kafka 版本为 0.8(即 spark-streaming-kafka-0-8_2.11)。

问题是,带有 Kafka 集成的 Apache Spark 0.8 版内置了 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>
4

1 回答 1

0

您需要将 kafka 依赖项放在 spark 依赖项之上,因此它看起来像这样:

<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>
于 2018-12-28T05:40:41.697 回答