spark 2.1.0与kafka 0.9.0的连接

wz1wpwve  于 2021-06-06  发布在  Kafka
关注(0)|答案(2)|浏览(436)

我正在使用kafka 0.9.0和spark 2.1.0我的spark提交如下:

./spark-submit --jars /home/cnbo/jars/spark-sql-kafka-0-10_2.11-2.1.0.cloudera1.jar --class ClickStream /home/cnbo/jars/sparkstreamingfi_2.11-0.1.jar

我收到以下错误:

java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V

我知道0.9到0.10之间存在版本冲突。但是我想在Kafka0.9.0上运行我的应用程序。现在需要做什么?我应该使用什么外部jar来代替:

spark-sql-kafka-0-10_2.11-2.1.0.cloudera1.jar

提前谢谢!!

txu3uszq

txu3uszq1#

如果你读了spark kafka的网页,你会发现
0.8集成与后来的0.9和0.10代理兼容,但0.10集成与以前的代理不兼容
因此,您需要这个库

spark-streaming-kafka-0-8_2.11

如果你想要结构化流媒体,你需要升级kafka来支持新的消费api

gz5pxeao

gz5pxeao2#

为了和Kafka一起使用spark,您还需要添加以下jar spark.driver.extraClassPath & spark.executor.extraClassPath :
/主页/cnbo/jars/kafka-clients-0.9.0.0.jar
spark-sql-kafka-0-10_2.11-2.1.0.cloudera1.jar 不包含 KafkaConsumer ,我们也需要添加上述jar文件。那么,决赛 spark-submit 命令如下:
./spark submit--jars/home/cnbo/jars/spark-sql-kafka-0-10琰2.11-2.1.0.cloudera1.jar:/home/cnbo/jars/kafka-clients-0.9.0.0.jar--class clickstream/home/cnbo/jars/sparkstreamingfi琰2.11-0.1.jar
希望有帮助!

相关问题