Thanks Harsha, Looks like ZkStringSerializer was the key to creating topics via AdminUtils. That’s quite an easy mistake to make. I now noticed that the issue is already being addressed at https://issues.apache.org/jira/browse/KAFKA-1737 <https://issues.apache.org/jira/browse/KAFKA-1737>, great job!
Thanks everyone for your help! Best regards Henri > On 14.1.2015, at 4.26, Harsha <ka...@harsha.io> wrote: > > Internally producer sends a TopicMetadataRequest which creates the topic > if auto.create.topics.enable is true. > > On Tue, Jan 13, 2015, at 04:49 PM, Harsha wrote: >> >> You can import ZKStringSerializer from kafka.utils.ZkClient or write >> your own similar string serializer like this >> https://gist.github.com/harshach/7b5447c39168eb6062e0 >> >> On Tue, Jan 13, 2015, at 04:31 PM, Harsha wrote: >>> It looks like you are not adding a ZkStringSerializer to your zkClient. >>> >>> ZkClient zkClient = new ZkClient(ZK_CONN_STRING); >>> in Kafka TopicCommand uses >>> "new ZkClient(opts.options.valueOf(opts.zkConnectOpt), 30000, 30000, >>> ZKStringSerializer)" >>> >>> because of this although your topic is getting created and a zookeeper >>> path created. Zk path contents are messed up >>> get /brokers/topics/test_d5ee7dfe-cf33-4135-9bbd-c1e7d9367af2 >>> ��t${"version":1,"partitions":{"0":[0]}} >>> cZxid = 0x2ea0 >>> ctime = Tue Jan 13 16:08:19 PST 2015 >>> mZxid = 0x2ea0 >>> mtime = Tue Jan 13 16:08:19 PST 2015 >>> >>> >>> >>> On Tue, Jan 13, 2015, at 02:28 PM, Henri Pihkala wrote: >>>> Hi, >>>> >>>> Thanks for your reply, Guozhang, you are right. >>>> >>>> I eventually got it working, but it required TWO changes to what I >>>> initially tried: >>>> >>>> 1) Use OffsetRequest, not OffsetFetchRequest, like Guozhang pointed out. >>>> >>>> 2) Create topics by sending a TopicMetadataRequest and having >>>> auto.create.topics.enable=true. Initially I tried to create topics >>>> explicitly using AdminUtils.createTopic(), but this did not work for some >>>> reason! >>>> >>>> Do you think the problem I had in 2) is worth investigating or reporting >>>> further? The gist below is a test case that passes as is, but if I change >>>> the topic creation method to AdminUtils.createTopic() the test fails. Can >>>> anyone explain why? >>>> >>>> https://gist.github.com/hpihkala/f93ef3dc4c08382df69e >>>> <https://gist.github.com/hpihkala/f93ef3dc4c08382df69e> >>>> >>>> Best regards >>>> Henri >>>> >>>> >>>>> On 13.1.2015, at 19.34, Guozhang Wang <wangg...@gmail.com> wrote: >>>>> >>>>> Henri, >>>>> >>>>> FetchOffsetRequest is used for retrieving the last committed offset of a >>>>> certain consumer group; for your use case you would send OffsetRequest. >>>>> >>>>> That said the error code is misleading, it may be a bug in not indicating >>>>> the right error code. >>>>> >>>>> Guozhang >>>>> >>>>> >>>>> On Fri, Jan 9, 2015 at 4:10 AM, Henri Pihkala <henri.pihk...@streamr.com> >>>>> wrote: >>>>> >>>>>> (1) Create topic >>>>>> (2) Send a FetchOffsetRequest for a partition in the new topic >>>>>> >>>>>> Results in error code 3, or UnknownTopicOrPartition. >>>>>> >>>>>> How can it be unknown, since I just created it? Shouldn’t it return 0, as >>>>>> that’s the offset of the next (first) message? >>>>>> >>>>>> Is this a bug or a feature? Tried with both 0.8.1.1 and 0.8.2-beta >>>>>> (single-node cluster). >>>>>> >>>>>> Best regards >>>>>> Henri >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> -- Guozhang >>>>