滚动升级Kafka时出错

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滚动升级Kafka时出错相关的知识,希望对你有一定的参考价值。

我已经安装了Cloudera 3.0.0,所以我有Apache Kafka版本0.11.0。我想从0.11.0滚动升级到1.0.0。我已阅读文档,并按照下一条说明操作:

  1. 对每个经纪人重复:

1.1。关闭经纪人

1.2。更新代码

1.2.1。添加到server.properties:

inter.broker.protocol.version = 0.11.0

1.3重新启动代理

  1. 将协议版本压缩到每个服务器设置中: inter.broker.protocol.version = 1.0
  2. 逐个重启经纪人。

当我执行第3步时,我得到以下错误:

java.lang.IllegalArgumentException: Version `1.0` is not a valid version
    at kafka.api.ApiVersion$.$anonfun$apply$1(ApiVersion.scala:79)
    at scala.collection.MapLike.getOrElse(MapLike.scala:128)
    at scala.collection.MapLike.getOrElse$(MapLike.scala:126)
    at scala.collection.AbstractMap.getOrElse(Map.scala:59)
    at kafka.api.ApiVersion$.apply(ApiVersion.scala:79)
    at kafka.server.KafkaConfig.<init>(KafkaConfig.scala:994)
    at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:867)
    at kafka.server.KafkaConfig$.fromProps(KafkaConfig.scala:864)
    at kafka.server.KafkaServerStartable$.fromProps(KafkaServerStartable.scala:28)
    at kafka.Kafka$.main(Kafka.scala:58)
    at kafka.Kafka.main(Kafka.scala)

然后,我试着写:

inter.broker.protocol.version=1.0.0
inter.broker.protocol.version=1.0-IV0

但我得到了同样的错误。为什么会这样?

答案

似乎Cloudera 3.0.0与kafka 0.11.x而不是1.0一起出现。至少根据这个信息:https://www.cloudera.com/documentation/kafka/latest/topics/kafka_packaging.html

这也适用于您的错误消息和您提供的调用堆栈:在kafka 0.11中。在第79行抛出异常:https://github.com/apache/kafka/blob/0.11.0/core/src/main/scala/kafka/api/ApiVersion.scala而在kafka 1.0中无效版本异常发生在第84行,如下所示:https://github.com/apache/kafka/blob/1.0/core/src/main/scala/kafka/api/ApiVersion.scala

您可以请仔细检查您正在运行的kafka版本吗?也许你甚至不需要更新任何东西。通常,您希望进行滚动更新的方式看起来是正确的。

另一答案

我怀疑你在libs中有0.11.0.0和1.0.0库。删除旧的lib文件并尝试。默认情况下,即使您没有提及inter.broker.protocol.version = 1.0,也会选择更新的版本。

以上是关于滚动升级Kafka时出错的主要内容,如果未能解决你的问题,请参考以下文章

Kafka-文件管理

Kafka - 从命令行生成时出错(字符('<'(代码 60)):预期有效值)

运行 pyspark kafka steam 时出错

生成嵌入式 kafka 时出错

创建 Kafka 主题时出错:- 复制因子大于可用代理

在片段中创建自定义列表视图时出错。必需的活动,找到的片段