Статьи

Настройка и запуск Apache Kafka в ОС Windows

Вступление

В моей последней статье мы рассмотрели настройку и использование Hadoop. Эта статья посвящена настройке и запуску сервера Apache Kafka в ОС Windows. Это руководство также содержит инструкции по настройке Java и Apache ZooKeeper.

Apache Kafka — это быстрая и масштабируемая очередь обмена сообщениями, способная обрабатывать большие нагрузки в контексте чтения и записи, то есть вещей, связанных с IO. Вы можете найти больше информации о Кафке на http://kafka.apache.org/ . Для Apache Kafka требуется работающий экземпляр ZooKeeper, который используется для надежной распределенной координации. Пожалуйста, узнайте больше о ZooKeeper на https://zookeeper.apache.org/ .

Из этого видео вы можете получить помощь по настройке Kafka в Windows.

Авторский GitHub:

Я создал несколько утилит Spark-Scala по адресу  https://github.com/gopal-tiwari , которые могут быть полезны в некоторых других случаях.

Скачивание необходимых файлов

В этом руководстве мы предполагаем, что ZooKeeper и Kafka разархивированы на диске C :, но вы можете разархивировать их в любом месте.

Здесь мы используем полноценный ZooKeeper, а не тот, который поставляется вместе с Kafka, потому что это будет одноузловой экземпляр ZooKeeper. Если вы хотите, вы можете запустить Kafka с упакованным ZooKeeper, расположенным в пакете Kafka в каталоге \ kafka \ bin \ windows .

Монтаж

A. Настройка JDK

1. Запустите установку JRE и установите флажок «Изменить папку назначения», затем нажмите «Установить».

2. Измените каталог установки на любой путь без пробелов в имени папки. Например, C: \ Java \ jre1.8.0_xx \. (По умолчанию это будет C: \ Program Files \ Java \ jre1.8.0_xx), затем нажмите «Далее».

3. Теперь откройте диалоговое окно системных переменных среды, открыв Панель управления -> Система -> Расширенные настройки системы -> Переменные среды.

4. Нажмите кнопку «Новая переменная пользователя» в разделе «Пользовательские переменные», затем введите «JAVA_HOME» в поле «Имя переменной» и укажите свой путь jre в значении переменной. Это должно выглядеть как на картинке ниже:

(Путь и версия Java могут меняться в зависимости от используемой вами версии Kafka)

5. Теперь нажмите ОК.

6. Найдите переменную Path в разделе «Системная переменная» в диалоговом окне «Переменные среды», которое вы только что открыли.

7. Отредактируйте путь и введите «;% JAVA_HOME% \ bin» в конце уже написанного текста, как показано на рисунке ниже:

8. Чтобы подтвердить установку Java, просто откройте cmd и введите « java –version». Вы должны увидеть версию Java, которую вы только что установили.

Если ваша командная строка выглядит примерно так, как на картинке выше, вы готовы. В противном случае вам необходимо перепроверить, соответствует ли ваша установочная версия правильной архитектуре ОС (x86, x64) или путь переменных среды является правильным.

B. Установка ZooKeeper

1. Перейдите в каталог конфигурации ZooKeeper. Для меня это C: \ zookeeper-3.4.7 \ conf

2. Переименуйте файл «zoo_sample.cfg» в « zoo.cfg».

3. Откройте zoo.cfg в любом текстовом редакторе, например «Блокнот»; Я предпочитаю Notepad ++.

4. Найти и редактировать dataDir=/tmp/zookeeper to :\zookeeper-3.4.7\data  

5. Добавьте запись в переменные системной среды, как мы это делали для Java.

а. Добавьте  ZOOKEEPER_HOME = C:\zookeeper-3.4.7 к системным переменным.

б. Отредактируйте системную переменную с именем «Path» и добавьте ;%ZOOKEEPER_HOME%\bin; 

6. Вы можете изменить порт Zookeeper по умолчанию в файле zoo.cfg (Порт по умолчанию 2181).

7. Запустите ZooKeeper, открыв новый cmd и набрав  zkserver.

8. Вы увидите командную строку с некоторыми подробностями, как на картинке ниже:

Поздравляем, ваш ZooKeeper запущен и работает на порту 2181!

C. Настройка Кафки

1. Перейдите в каталог настроек Kafka. Для меня это C: \ kafka_2.11-0.9.0.0 \ config

2. Отредактируйте файл «server.properties».

3. Найдите и отредактируйте строку . log.dirs=/tmp/kafka-logs” to “log.dir= C:\kafka_2.11-0.9.0.0\kafka-logs

4. Если ваш ZooKeeper работает на другом компьютере или кластере, вы можете отредактировать «zookeeper. подключите : 2181 ” к вашему собственному IP и порту. Для этой демонстрации мы используем одну и ту же машину, поэтому нет необходимости менять. Также порт Kafka и broker.id настраиваются в этом файле. Оставьте другие настройки как есть.

5. Ваш Kafka будет работать по умолчанию через порт 9092 и подключаться к порту по умолчанию ZooKeeper, 2181.

D. Запуск сервера Kafka

Важно: Пожалуйста, убедитесь, что ваш экземпляр ZooKeeper запущен и работает перед запуском сервера Kafka.

1. Перейдите в каталог установки Kafka:  C: \ kafka_2.11-0.9.0.0 \

2. Откройте здесь командную строку, нажав Shift + щелчок правой кнопкой мыши и выберите «Открыть окно командной строки здесь»).

3. Теперь введите  .\bin\windows\kafka-server-start.bat .\config\server.properties и нажмите Enter.

.\bin\windows\kafka-server-start.bat .\config\server.properties

4. Если все прошло нормально, ваша командная строка будет выглядеть так:

5. Теперь ваш Kafka Server запущен и вы можете создавать темы для хранения сообщений. Кроме того, мы можем создавать или потреблять данные из кода Java или Scala или непосредственно из командной строки.

E. Создание тем

1. Теперь создайте тему с именем «test» и коэффициентом репликации 1, поскольку у нас работает только один сервер Kafka. Если у вас есть кластер с несколькими запущенными серверами Kafka, вы можете соответственно увеличить коэффициент репликации, что повысит доступность данных и будет действовать как отказоустойчивая система.

2. Откройте новую командную строку в расположении C: \ kafka_2.11-0.9.0.0 \ bin \ windows.

3. Введите следующую команду и нажмите Enter:

kafka-topics.bat --create --zookeeper localhost:2181 --replication-factor 1 --partitions 1 --topic test

F. Создание производителя и потребителя для тестирования сервера

1. Откройте новую командную строку в расположении C: \ kafka_2.11-0.9.0.0 \ bin \ windows

2. Чтобы запустить продюсера, введите следующую команду:

kafka-console-producer.bat --broker-list localhost:9092 --topic test

3. Снова откройте новую командную строку в том же месте, что и C: \ kafka_2.11-0.9.0.0 \ bin \ windows

4. Теперь запустите потребителя, введя следующую команду:

До кафки версии 2.0 (<2.0):

kafka-console-consumer.bat --zookeeper localhost:2181 --topic test

После кафки версии 2.0 (> = 2.0): 

kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic test

5. Теперь у вас будет две командные строки, как на картинке ниже:

6. Теперь введите что-нибудь в командной строке производителя и нажмите Enter, и вы сможете увидеть сообщение в командной строке другого потребителя.

7. Если вы можете просмотреть и просмотреть свои сообщения на стороне потребителя, вы завершили настройку Kafka.

Некоторые другие полезные команды

  1. Список тем: kafka-topics.bat --list --zookeeper localhost:2181 
  2. Опишите тему: kafka-topics.bat --describe --zookeeper localhost:2181 --topic [Topic Name]
  3. Читать сообщения с самого начала

    1. До версии <2.0: kafka-console-consumer.bat --zookeeper localhost:2181 --topic [Topic Name] --from-beginning
    2. После версии> 2.0:  kafka-console-consumer.bat --bootstrap-server localhost:9092 --topic [Topic Name] --from-beginn
  4. Удалить тему: kafka-run-class.bat kafka.admin.TopicCommand --delete --topic [topic_to_delete] --zookeeper localhost:2181