尝试从 kafka(0.10 版本)访问 kafka(0.90 版本)时,订阅方法抛出错误

Subscribe method is throwing error while trying to access kafka (0.90 version) from kafka (0.10 version)

这是我们的开发环境

1) kafka 集群 - 版本为 0.10 2) Spark 集群 - 1.6 有 0.9 个 Kafka 罐子

我们正在尝试在 spark 集群模式下进行 produce() 和 consume() 。 (通过火花提交)

同时运行spark-submit作业,spark选择的是0.9版本的kafka。以下是我们的观察

1) 制作人 – 工作正常(0.9 api 和 0.10 api 制作人兼容) 2) 使用 KafkaUtils 流式传输 Kafka 消费者 – 工作正常(这里似乎也与 0.9 api 和 0.10 api 生产者兼容) 3) 消费者使用 subscribe() API – 出错并显示以下消息。有人可以帮助我们知道为什么会失败吗?

16/10/24 02:31:08 ERROR yarn.ApplicationMaster: User class threw exception: java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V at com.common.kafka.init(Kafkafunction.java:150) at com.client.Client.main(Client.java:100) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.apache.spark.deploy.yarn.ApplicationMaster$$anon.run(ApplicationMaster.scala:542) 16/10/24 02:31:08 INFO yarn.ApplicationMaster: Final app status: FAILED, exitCode: 15, (reason: User class threw exception: java.lang.NoSuchMethodError: org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V)

将所有内容更新到 0.10 即可解决问题。这些版本在这一行中肯定不兼容org.apache.kafka.clients.consumer.KafkaConsumer.subscribe(Ljava/util/Collection;)V