Are you using ZooKeeper 3.5.6 client libraries with Kafka 2.3.1? Kafka 2.3.1 ships with ZooKeeper 3.4.x.
Ismael On Thu, Dec 5, 2019 at 8:18 AM Charles Bueche <cbue...@gmail.com> wrote: > Hello all, > > I do have two Kafka clusters in action, test and prod. The two are formed > by 3 nodes each, are independent and run their own zookeeper setups. My > prod cluster is running fine. My test cluster is half-broken and I'm > struggling to fix it. I could wipe it but I prefer to understand what's > wrong and fix it. > > I'm not sure what broke my test cluster. I had several network > disconnections / split-brains but Kafka always recovered fine. The reasons > for the network issues are independent and still being investigated > (layer-2 storms, etc). > > So I upgraded my zookeeper and kafka to the latest versions and when > trying to rebalance a topic across brokers I started to notice the > problems. Not sure really when they started, before or after the upgrade. > > I ran the upgrade as for the official doc (rolling upgrade, moving up > inter.broker.protocol.version and log.message.format.version gradually). > > ------------------------------------------------------ > cat /etc/os-release > NAME="SLES" > VERSION="12-SP4" > VERSION_ID="12.4" > PRETTY_NAME="SUSE Linux Enterprise Server 12 SP4" > ID="sles" > ANSI_COLOR="0;32" > CPE_NAME="cpe:/o:suse:sles:12:sp4" > > ------------------------------------------------------ > versions : > - zookeeper 3.5.6 > - kafka 2.12-2.3.1 > > ------------------------------------------------------ > > many rapid log entries on brokers 1 & 2 (we have 1, 2, 3) > > [2019-12-05 09:56:54,967] ERROR [KafkaApi-1] Number of alive brokers '0' > does not meet the required replication factor '1' for the offsets topic > (configured via 'offsets.topic.replication.factor'). This error can be > ignored if the cluster is starting up and not all brokers are up yet. > (kafka.server.KafkaApis) > > ------------------------------------------------------ > java is java-1_8_0-openjdk-1.8.0.222-27.35.2.x86_64 from SLES. I have > tried Oracle Java jdk1.8.0_231 with the same issue. > > ------------------------------------------------------ > when trying to see a reassignment I have this very suspect error : > > root@vmgato701a01:/appl/kafka/bin # ./kafka-reassign-partitions.sh > --zookeeper $ZKLIST --reassignment-json-file /tmp/r7.json --verify > > Status of partition reassignment: > Partitions reassignment failed due to > com.fasterxml.jackson.databind.ext.Java7Support.getDeserializerForJavaNioFilePath(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JsonDeserializer; > java.lang.AbstractMethodError: > com.fasterxml.jackson.databind.ext.Java7Support.getDeserializerForJavaNioFilePath(Ljava/lang/Class;)Lcom/fasterxml/jackson/databind/JsonDeserializer; > at > com.fasterxml.jackson.databind.ext.OptionalHandlerFactory.findDeserializer(OptionalHandlerFactory.java:122) > at > com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findOptionalStdDeserializer(BasicDeserializerFactory.java:1589) > at > com.fasterxml.jackson.databind.deser.BasicDeserializerFactory.findDefaultDeserializer(BasicDeserializerFactory.java:1812) > at > com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.findStdDeserializer(BeanDeserializerFactory.java:161) > at > com.fasterxml.jackson.databind.deser.BeanDeserializerFactory.createBeanDeserializer(BeanDeserializerFactory.java:125) > at > com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer2(DeserializerCache.java:411) > at > com.fasterxml.jackson.databind.deser.DeserializerCache._createDeserializer(DeserializerCache.java:349) > at > com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCache2(DeserializerCache.java:264) > at > com.fasterxml.jackson.databind.deser.DeserializerCache._createAndCacheValueDeserializer(DeserializerCache.java:244) > at > com.fasterxml.jackson.databind.deser.DeserializerCache.findValueDeserializer(DeserializerCache.java:142) > at > com.fasterxml.jackson.databind.DeserializationContext.findRootValueDeserializer(DeserializationContext.java:477) > at > com.fasterxml.jackson.databind.ObjectMapper._findRootDeserializer(ObjectMapper.java:4178) > at > com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3997) > at > com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3079) > at kafka.utils.Json$.parseBytesAs(Json.scala:73) > at kafka.zk.ReassignPartitionsZNode$.decode(ZkData.scala:407) > at > kafka.zk.KafkaZkClient.getPartitionReassignment(KafkaZkClient.scala:795) > at > kafka.admin.ReassignPartitionsCommand$.checkIfPartitionReassignmentSucceeded(ReassignPartitionsCommand.scala:355) > at > kafka.admin.ReassignPartitionsCommand$.verifyAssignment(ReassignPartitionsCommand.scala:97) > at > kafka.admin.ReassignPartitionsCommand$.verifyAssignment(ReassignPartitionsCommand.scala:90) > at > kafka.admin.ReassignPartitionsCommand$.main(ReassignPartitionsCommand.scala:61) > at > kafka.admin.ReassignPartitionsCommand.main(ReassignPartitionsCommand.scala) > > Help appreciated. >