小组成员支持的协议与现有成员的协议不兼容

时间:2018-07-23 20:44:38

标签: apache-spark apache-kafka spark-streaming

我正面临与Kafka有关的问题。

我正在使用当前的服务(Producer),它将消息发送到Kafka主题(events)。该服务正在使用用Java编写的kafka_2.12 v1.0.0

我正在尝试将其与spark-streaming的示例项目集成为一项Consumer服务(here使用的是用Scala编写的kafka_2.11 v0.10.0)

该消息已成功从Producer发送到Kafka主题。但是,我总是收到以下错误堆栈:

Exception in thread "main" org.apache.kafka.common.errors.InconsistentGroupProtocolException: The group member's supported protocols are incompatible with those of existing members.
    at ... run in separate thread using org.apache.spark.util.ThreadUtils ... ()
    at org.apache.spark.streaming.StreamingContext.liftedTree1$1(StreamingContext.scala:577)
    at org.apache.spark.streaming.StreamingContext.start(StreamingContext.scala:571)    at com.jj.streaming.ItemApp$.delayedEndpoint$com$jj$streaming$ItemApp$1(ItemApp.scala:72)
    at com.jj.streaming.ItemApp$delayedInit$body.apply(ItemApp.scala:12)
    at scala.Function0$class.apply$mcV$sp(Function0.scala:34)
    at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12)     at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.App$$anonfun$main$1.apply(App.scala:76)
    at scala.collection.immutable.List.foreach(List.scala:381)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:35)   at scala.App$class.main(App.scala:76)
    at com.jj.streaming.ItemApp$.main(ItemApp.scala:12)
    at com.jj.streaming.ItemApp.main(ItemApp.scala)

我不知道根本原因。我该如何解决?

1 个答案:

答案 0 :(得分:0)

当我尝试将使用方与上一个使用不同分区分配策略的使用方添加到集群时,这会在我的配置中发生。

例如:

partition.assignment.strategy = org.apache.kafka.clients.consumer.RandomAccessAssignor

与以下内容混合或默认为:

partition.assignment.strategy = org.apache.kafka.clients.consumer.RangeAssignor