简体   繁体   English

Spark 2.1.0与Kafka 0.9.0的连接

[英]Spark 2.1.0 connection with Kafka 0.9.0

I am using Kafka 0.9.0 and Spark 2.1.0 My Spark Submit is as follows: 我正在使用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

I am getting following error: 我收到以下错误:

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

I know there is version conflict for 0.9 to 0.10. 我知道版本冲突为0.9到0.10。 But I want to run My application on Kafka 0.9.0. 但我想在Kafka 0.9.0上运行我的应用程序。 What needs to be done now? 现在需要做什么? what external jar I should use instead of: 我应该使用什么外部jar而不是:

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

Thanks in Advance!! 提前致谢!!

In order to use Spark along with Kafka, you need to add following JAR too in spark.driver.extraClassPath & spark.executor.extraClassPath : 为了将Spark与Kafka一起使用,您还需要在spark.driver.extraClassPathspark.executor.extraClassPath添加以下JAR:

/home/cnbo/jars/kafka-clients-0.9.0.0.jar /home/cnbo/jars/kafka-clients-0.9.0.0.jar

Since spark-sql-kafka-0-10_2.11-2.1.0.cloudera1.jar does not contain KafkaConsumer , we need to add above-mentioned JAR file too. 由于spark-sql-kafka-0-10_2.11-2.1.0.cloudera1.jar不包含KafkaConsumer ,我们也需要添加上述JAR文件。 So, the final spark-submit command will be like this: 所以,最终的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 ./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

I hope it helps! 我希望它有所帮助!

If you read the Spark Kafka page, you'd have seen 如果您阅读Spark Kafka页面,您已经看过了

0.8 integration is compatible with later 0.9 and 0.10 brokers, but the 0.10 integration is not compatible with earlier brokers 0.8集成与后来的0.9和0.10代理兼容,但0.10集成与早期的代理不兼容

Therefore, you need this library 因此,您需要此库

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

And if you want structured streaming, you need to actually upgrade Kafka to support the new consumer API 如果您想要结构化流媒体,您需要实际升级Kafka以支持新的消费者API

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM