通过java创建kafka主题时出现异常

时间:2015-01-23 11:31:53

标签: java apache-zookeeper apache-kafka kafka-consumer-api

我正在尝试使用以下代码Source

通过AdminCommand创建一个kafka主题
 ZkClient zkClient = new ZkClient(kafkaHost, 10000, 10000, ZKStringSerializer$.MODULE$);
    AdminUtils.createTopic(zkClient, "pa_reliancepoc_telecom_usageevent", 10, 1, new Properties());

但是得到以下异常

Exception in thread "main" org.I0Itec.zkclient.exception.ZkNoNodeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/ids
at org.I0Itec.zkclient.exception.ZkException.create(ZkException.java:47)
at org.I0Itec.zkclient.ZkClient.retryUntilConnected(ZkClient.java:685)

1 个答案:

答案 0 :(得分:1)

从您的例外情况来看,它说could not able to connect zookeeper。 在您的代码中,

ZkClient zkClient = new ZkClient(kafkaHost, 10000, 10000, ZKStringSerializer$.MODULE$); 

第一个参数是zookeeper host,我不知道你在kafkaHost变量中有什么,顾名思义我认为你已经在该变量中存储了kafka主机。通过提供zookeeper host来更改第一个参数。例如,

String zkHosts = "xxx.xxx.xx.xx:2181";
ZkClient zkClient = new ZkClient(zkHosts, 10000, 10000, ZKStringSerializer$.MODULE$); 

如果你有一个以上的动物园管理员,那么以逗号分隔的字符串给出。例如,

String zkHosts = "xxx.xxx.xx.xx:2181,yyy.yyy.yy.yy:2181";