在提交spark作业时,如何将maven依赖优先于spark类路径?

csbfibhn  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(319)

我有一个hadoop、spark等的cloudera发行版,其中spark-kafka版本是0.8(即spark-streaming-kafka-0-8_2.11)。
问题是,带有kafka集成的apachespark版本0.8内置了kafka版本0.8.2.1,我需要0.10.0.1。
有办法解决这个问题吗?我不想使用spark-streaming-kafka-0-10_.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>
enyaitl3

enyaitl31#

您需要将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>

相关问题