我正在使用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
提前谢谢!!
2条答案
按热度按时间txu3uszq1#
如果你读了spark kafka的网页,你会发现
0.8集成与后来的0.9和0.10代理兼容,但0.10集成与以前的代理不兼容
因此,您需要这个库
如果你想要结构化流媒体,你需要升级kafka来支持新的消费api
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
希望有帮助!