什么是zookeeper.broker.path

时间:2015-10-07 07:49:00

标签: apache-spark apache-kafka apache-zookeeper

我正在学习Spark和Kafka并遇到了这个项目kafka-spark-consumer,似乎有效地消费了来自Kafka的消息。这个项目需要配置几个kafka&动物园管理员属性,这就是我挣扎的地方。我的意思是这个属性是什么意思 zookeeper.broker.path ?对不起,如果这是一个基本问题。

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

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

和zookeeper as,

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所回答的那样,/ broker目录是由zookeeper默认创建的。

1 个答案:

答案 0 :(得分:0)

对于zookeeper.connect属性,不需要&#39; / brokers&#39; 。它应该是

zookeeper.connect=localhost:2181

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

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

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

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