滚动升级Kafka时出错
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了滚动升级Kafka时出错相关的知识,希望对你有一定的参考价值。
我已经安装了Cloudera 3.0.0,所以我有Apache Kafka版本0.11.0。我想从0.11.0滚动升级到1.0.0。我已阅读文档,并按照下一条说明操作:
- 对每个经纪人重复:
1.1。关闭经纪人
1.2。更新代码
1.2.1。添加到server.properties:
inter.broker.protocol.version = 0.11.0
1.3重新启动代理
- 将协议版本压缩到每个服务器设置中:
inter.broker.protocol.version = 1.0
- 逐个重启经纪人。
当我执行第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时出错的主要内容,如果未能解决你的问题,请参考以下文章