I'm trying to read data from ZooKeeper nodes that was written by different Kafka components. As a specific example (just one from a bunch), I'm trying to read current offset for specific group, topic and partition. As far as I understand, it is stored under the path
/consumers/data-processing-team/offsets/unloads/35 I'm using `com.101tec.zkclient` to get data. I'm able to walk through node tree and create new nodes, as well as write and read simple types (e.g. strings) to them. But when it comes to reading data from Kafka-specific nodes like this: zkClient.readData("/consumers/data-processing-team/offsets/unloads/35") I'm getting decoding error: org.I0Itec.zkclient.exception.ZkMarshallingError: > java.io.StreamCorruptedException: invalid stream header: 32323737 > at > org.I0Itec.zkclient.serialize.SerializableSerializer.deserialize(SerializableSerializer.java:37) > at org.I0Itec.zkclient.ZkClient.derializable(ZkClient.java:740) > at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:773) > at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:761) > at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:750) > at org.I0Itec.zkclient.ZkClient.readData(ZkClient.java:744) > ... 64 elided > Caused by: java.io.StreamCorruptedException: invalid stream header: > 32323737 > at java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804) > at java.io.ObjectInputStream.<init>(ObjectInputStream.java:299) > at > org.I0Itec.zkclient.serialize.TcclAwareObjectIputStream.<init>(TcclAwareObjectIputStream.java:30) > at > org.I0Itec.zkclient.serialize.SerializableSerializer.deserialize(SerializableSerializer.java:31) > ... 69 more As far as I understand, this is due to specific serialization of nodes. So I'm wondering, what is this format and how can I read such nodes?