什么是 zookeeper.broker.path

what is zookeeper.broker.path

我正在学习 Spark 和 Kafka,并遇到了这个项目 kafka-spark-consumer,它似乎可以有效地使用来自 Kafka 的消息。这个项目需要配置一些 kafka 和 zookeeper 属性,这就是我正在努力的地方。我的意思是这个 属性 是什么意思 zookeeper.broker.path?抱歉,如果这是一个基本问题。

我已经在单节点中配置了 kafka 并具有以下属性,

broker.id=1
port=9093
log.dir=/tmp/kafka-logs-1

和动物园管理员,

zookeeper.connect=localhost:2181/brokers
zookeeper.connection.timeout.ms=6000

如果我尝试使用 /brokers 配置 zookeeper.broker.path,我会从消费者那里得到以下异常,

Exception in thread "main" java.lang.RuntimeException: org.apache.zookeeper.KeeperException$NoNodeException: KeeperErrorCode = NoNode for /brokers/topics/<name>/partitions
    at consumer.kafka.ReceiverLauncher.getNumPartitions(ReceiverLauncher.java:217)
    at consumer.kafka.ReceiverLauncher.createStream(ReceiverLauncher.java:79)
    at consumer.kafka.ReceiverLauncher.launch(ReceiverLauncher.java:51)
    at com.ibm.spark.streaming.KafkaConsumer.run(KafkaConsumer.java:78)
    at com.ibm.spark.streaming.KafkaConsumer.start(KafkaConsumer.java:43)
    at com.ibm.spark.streaming.KafkaConsumer.main(KafkaConsumer.java:103)

你能帮我了解这里的 zookeeper 代理路径是什么吗?我该如何配置它?

编辑

上面的错误是由于主题不存在造成的,我创建主题的那一刻,错误就消失了。

根据user007的回答,/brokers目录默认由zookeeper创建。

zookeeper.connect 属性 不需要 '/brokers'。应该是

zookeeper.connect=localhost:2181

我对你提到的"kafka-spark-consumer"项目不熟悉。但通常 /brokers 是kafka在zookeeper中创建的默认节点。我还没有看到任何库要求用户配置它。

/brokers 是存储主题等元数据的 znode 路径。

进入kafka bin目录。然后调用 zookeeper shell - ./zookeeper-shell.sh localhost

然后ls。您应该能够看到 topics 和在那里创建的其他子节点。