我正在尝试使用以下代码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)
答案 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";