我在没有 zookeeper 的情况下使用 kafka 0.10 。我想获得kafka主题列表。由于我们不使用zookeeper,因此该命令无效:
bin/kafka-topics.sh --list --zookeeper localhost:2181
。如果没有zookeeper,我如何获得相同的输出?
答案 0 :(得分:50)
Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。
如果您不想安装并拥有单独的zookeeper服务器,则可以使用与kafka一起打包的便捷脚本来获取快速且脏的单节点ZooKeeper实例。
启动单节点Zookeeper实例:
bin/zookeeper-server-start.sh config/zookeeper.properties
启动Kafka服务器:
bin/kafka-server-start.sh config/server.properties
列出Kafka中可用的主题:
bin/kafka-topics.sh --list --zookeeper localhost:2181
答案 1 :(得分:10)
如果我们运行list topic命令,请查看该主题:
$ bin/kafka-topics.sh --list --zookeeper localhost:2181
检查数据是否在Kafka登陆:
$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic twitterstream --from-beginning
答案 2 :(得分:4)
Kafka需要zookeeper,实际上主题列表存储在那里,因此kafka-topics工具也需要连接到zookeeper。 在较新版本中的kafka-clients apis不再直接与zookeeper 交谈,也许这就是为什么你的印象是没有zookeeper的设置是可能的。 它不是,因为kafka在内部依赖它。供参考: http://kafka.apache.org/documentation.html#quickstart 第2步:
Kafka使用ZooKeeper,因此如果您还没有ZooKeeper服务器,则需要先启动它。
答案 3 :(得分:3)
Kafka客户不再需要zookeeper,但Kafka服务器确实需要它来运行。
您可以使用新的AdminClient API获取主题列表,但尚未重写使用Kafka的shell命令以使用此新API。
在没有Zookeeper的情况下使用Kafka的另一种方法是使用SaaS Kafka即服务提供商,例如Confluent Cloud,这样您就不会看到或操作Kafka代理(以及所需的后端Zookeeper集合)。
例如,在Confluent Cloud上,您只需使用以下zookeeper free CLI命令:
ccloud topic list
答案 4 :(得分:2)
用于docker化的kafka / zookeeper
docker ps
找到您的Zookeeper容器ID
docker exec -it <id> bash
cd bin
./zkCli.sh
ls /brokers/topics
答案 5 :(得分:1)
Kafka是一个分布式系统,需要Zookeeper。 你也要开始管理动物园。 点击此处的“快速入门”:https://kafka.apache.org/0100/documentation.html#quickstart
答案 6 :(得分:1)
运行Kafka需要Zookeeper。 zookeeper是必须的。如果你想看看没有zookeeper的主题列表,那么你需要kafka监控工具,如Kafka Monitor Tool,kafka-manager等。
答案 7 :(得分:1)
要阅读消息,您应该使用:
kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic messages --from-beginning
--bootstrap-server
是必填属性。
您只能使用单个kafka1:9020
节点。
答案 8 :(得分:1)
命令:
要启动kafka:
$ nohup〜/ kafka / bin / kafka-server-start.sh〜/ kafka / config / server.properties>〜/ kafka / kafka.log 2>&1&
列出kafka上的所有主题;
$ bin / kafka-topics.sh --list --zookeeper本地主机:2181
要检查数据是否在kafka主题上并打印出来;
$ bin / kafka-console-consumer.sh --bootstrap-server localhost:9092 --topic your_topic_name --from-beginning
答案 9 :(得分:1)
Kafka 2.2及更高版本
较新版本的Kafka不再需要ZooKeeper连接字符串来列出主题,而是可以直接通过Kafka代理访问。下载Kafka时,<a href="http://www.facebook.com/dialog/send?app_id=123456789&link=<?=$referal_url?>" target="_blank"><img src="<?=BASE_IMAGE?>FB_Messenger.png" class="img-responsive"> </a>
文件夹中提供了kafka-topics.sh
。要列出主题,请执行以下操作:
bin/
答案 10 :(得分:1)
您需要先启动Zookeeper服务器。 因此,首先转到kafka / bin / windows并运行
zookeeper-server-start.bat ../../config/zookeeper.properties
然后在具有新cmd Windows的同一文件夹中,通过运行启动kafka服务器
kafka-server-start.bat ../../config/server.properties
注意:如果您是第一次启动它,那么某些 在这些文件中进行更改
然后在kafka / bin / windows中运行
kafka-topics.bat --zookeeper localhost:2181 --list
列出所有现有主题。
答案 11 :(得分:0)
您有一个较旧的软件包版本,其中的命令不再接受zookeeper,而将bootstrap-server作为连接。然后,Confluent将在内部与Zookeeper连接。
https://www.confluent.io/download/(5.3或更高版本)
答案 12 :(得分:0)
您可以尝试使用以下两个命令并列出所有Kafka主题
答案 13 :(得分:0)
使用Confluent's REST Proxy API:
curl -X GET -H "Accept: application/vnd.kafka.v2+json" localhost:8082/topics
其中localhost:8082
是Kafka代理地址。
答案 14 :(得分:0)
请使用kafka-topics.sh --list --bootstrap-server localhost:9092
列出所有主题