Перелічіть усі теми kafka


81

Я використовую kafka 0.10 без zookeeper . Я хочу отримати список тем kafka. Ця команда не працює , так як ми не використовуємо зоопарк: bin/kafka-topics.sh --list --zookeeper localhost:2181. Як я можу отримати той самий результат без zookeeper?


/usr/local/kafka/bin/kafka-topics.sh --list --zookeeper localhost:2181
Adiii

Відповіді:


144

Kafka використовує ZooKeeper, тому вам потрібно спочатку запустити сервер ZooKeeper, якщо у вас його ще немає.

Якщо ви не хочете встановлювати і мати окремий сервер zookeeper, ви можете скористатися зручним сценарієм, упакованим з kafka, щоб отримати швидкий і брудний екземпляр ZooKeeper з одним вузлом.

Запуск екземпляра Zookeeper з одним вузлом:

bin/zookeeper-server-start.sh config/zookeeper.properties

Запуск сервера Kafka:

bin/kafka-server-start.sh config/server.properties

Перелік тем, доступних на Кафці:

bin/kafka-topics.sh --list --zookeeper localhost:2181

2
Мені потрібне рішення без охоронця зоопарку. Чи є якась інша команда, окрім цієї, щоб перерахувати всі теми без zookeeper?
SSR

5
Я не думаю, що можливо навіть використовувати kafka без zookeeper, оскільки стан kafka зберігається в zookeeper. Як ви змогли цього досягти?
Данікан

Якщо ви шукаєте команду для цього, то stackoverflow.com/questions/40034074/…
Перу,

Якщо ваш сервер zookeeper є іменованим хостом, вам потрібно буде вказати ім'я хоста замість localhosteg ./kafka-topics.sh --list --zookeeper zookeeper:2181. Або залежно від вашої конфігурації вам може знадобитися використовувати IP-адресу, наприклад./kafka-topics.sh --list --zookeeper 10.10.10.180:2181
Chris Halcrow

Детальніше ви можете знайти тут: dosemnadeem.wordpress.com/2020/08/30/…
craftsmannadeem

29

Kafka 2.2 і новіших версій

Новіші версії Kafka більше не вимагають рядка підключення ZooKeeper для переліку тем, але можуть безпосередньо переходити через посередників Kafka. kafka-topics.shнадається в bin/папці під час завантаження Kafka. Щоб перелічити теми, виконайте такі дії:

bin/kafka-topics.sh --list --bootstrap-server <BROKER-LIST>

1
якщо припустити, що OP означає "без опції cli zookeeper" - що, ймовірно, оскільки kafka не працює без zookeeper - ця відповідь повинна бути прийнятою відповіддю для Kafka 2.2+. Документи cli тепер вказують, що --zookeeper застарілий на користь --bootstrap-server.
Luke W

Це насправді найкращий спосіб зробити це, якщо ви працюєте в AWS з їх MSK. В іншому випадку вам потрібно відкрити свою службу ZooKeeper, що може бути проблемою безпеки, якщо її зробити неправильно.
Майкл Робінсон,

@MichaelRobinson дозволив використовувати MSK з v2.2.1, а не v1.1.1.
Павло,

Так, мій коментар був локалізований у цій публікації.
Michael Robinson

23

Для докеризованого кафки / охоронця зоопарку

docker ps

знайду вам ідентифікатор контейнера зоопарку

docker exec -it <id> bash

cd bin

./zkCli.sh

ls /brokers/topics

./zkCli.shне існує ... на зображенні
докера зоопарку

21

щоб побачити цю тему, якщо ми запустимо команду list topic:

$ bin/kafka-topics.sh --list --zookeeper localhost:2181

Щоб перевірити, чи дані приземляються в Кафці:

$ bin/kafka-console-consumer.sh --zookeeper localhost:2181 --topic twitterstream --from-beginning


6

Команди:

  1. Щоб запустити kafka:

    $ nohup ~ / kafka / bin / kafka-server-start.sh ~ / kafka / config / server.properties> ~ / kafka / kafka.log 2> & 1 &

  2. Перерахувати всю тему на kafka;

    $ bin / kafka-topics.sh --list --zookeeper localhost: 2181

  3. Перевірити дані, що потрапляють на тему kafka, та роздрукувати їх;

    $ bin / kafka-console-consumer.sh --bootstrap-server localhost: 9092 --topic your_topic_name - від початку


4

Kafka вимагає зберігача зоопарку, і там справді зберігається список тем, отже інструмент kafka-теми також повинен підключитися до zookeeper. kafka-clients apis в нових версіях більше не спілкуються безпосередньо з zookeeper , можливо, тому у вас складається враження, що налаштування без zookeeper можливе. Це не так , оскільки kafka покладається на це внутрішньо. Для довідки див .: http://kafka.apache.org/documentation.html#quickstart Крок 2:

Kafka використовує ZooKeeper, тому вам потрібно спочатку запустити сервер ZooKeeper, якщо у вас його ще немає


3

Клієнтам Kafka більше не потрібен zookeeper, але серверам Kafka він потрібен для роботи.

Ви можете отримати список тем за допомогою нового AdminClient API, але команда оболонки, яка постачається з Kafka, ще не переписана для використання цього нового API.

Інший спосіб використання Kafka без Zookeeper - це використання постачальника послуг SaaS Kafka-as-a-a-a-service, такого як Confluent Cloud, щоб ви не бачили та не працювали з брокерами Kafka (і необхідним серверним ансамблем Zookeeper).

Наприклад, на Confluent Cloud ви просто скористаєтесь наступною командою CLI для zookeeper:

ccloud topic list


1

Для запуску Кафки потрібен зоопарк. охоронець зоопарку обов’язковий. все ж, якщо ви хочете переглянути список тем без zookeeper, то вам потрібен інструмент моніторингу kafka, такий як Kafka Monitor Tool, kafka-manager тощо.


1

Для читання повідомлень слід використовувати:

kafka-console-consumer.sh --bootstrap-server kafka1:9092,kafka2:9092,kafka3:9092 --topic messages --from-beginning

--bootstrap-serverє обов'язковим атрибутом. Ви можете використовувати лише один kafka1:9020вузол.


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

щоб перерахувати всі існуючі теми.


0

У вас є застаріла версія пакета з командами, які більше не приймають zookeeper, а швидше bootstrap-сервер як з'єднання. Тоді Confluent зв’яжеться із Zookeeper внутрішньо.

https://www.confluent.io/download/ (5.3 або вище)


0

Ви можете спробувати скористатися двома наведеними нижче командами та перерахувати всі теми Kafka

  • bin / kafka-topics.sh --описати --zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:2181
  • bin / kafka-topics.sh --zookeeper 192.168.0.142:2181,192.168.9.115:2181,192.168.4.57:218 --list

0

Використання REST Proxy API Confluent :

curl -X GET -H "Accept: application/vnd.kafka.v2+json" localhost:8082/topics 

де localhost:8082адреса проксі Кафка.


0

Будь ласка, використовуйте kafka-topics.sh --list --bootstrap-server localhost:9092 для переліку всіх тем

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.