2

我正在尝试使用以下代码源通过 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)
4

1 回答 1

1

从你的例外,它说could not able to connect zookeeper。在您的代码中,

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

第一个参数是zookeeper host,我不知道你在 kafkaHost 变量中有什么,顾名思义我认为你已经将 kafka host 存储在该变量中。通过给出 来更改第一个参数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";

于 2015-01-27T13:59:12.927 回答