If you abort Kafka (killing the JVM for example) and restart it, depending on the zookeeper timeout you've used, it might occur that the ephemeral node create by the broker has not yet been removed by ZK.
If this is the case, Kafka will detect that there is a znode conflict and kill itself. This is what your logs seem to imply: [2011-10-03 15:33:22,229] INFO conflict in /brokers/ids/0 data: 10.98.20.109-1317681202194:10.98.20.109:9092 stored data: 10.98.20.109-1317268078266:10.98.20.109:9092 (kafka.utils.ZkUtils$) Try to either wait for more than the ZK timeout prior to restarting Kafka, or lower the ZK timeout so the ephemeral node is indeed gone when you restart Kafka. Mathias.