Как запустить kafka на windows 10

Обновлено: 07.07.2024

Данная статья будет полезной тем, кто только начал знакомиться с микросервисной архитектурой и с сервисом Apache Kafka. Материал не претендует на подробный туториал, но поможет быстро начать работу с данной технологией. Я расскажу о том, как установить и настроить Kafka на Windows 10. Также мы создадим проект, используя Intellij IDEA и Spring Boot.

Зачем?

Установка и настройка ZooKeeper и Apache Kafka на Windows 10

Первое, что надо знать для начала работы — это то, что Apache Kafka работает поверх сервиса ZooKeeper. ZooKeeper — это распределенный сервис конфигурирования и синхронизации, и это всё, что нам нужно знать о нём в данном контексте. Мы должны скачать, настроить и запустить его перед тем, как начать работу с Kafka. Прежде чем начать работу с ZooKeeper, убедитесь, что у вас установлен и настроен JRE.

Извлекаем из скаченного архива ZooKeeper`а файлы в какую-нибудь папку на диске.
В папке zookeeper с номером версии, находим папку conf и в ней файл “zoo_sample.cfg”.



Копируем его и меняем название копии на “zoo.cfg”. Открываем файл-копию и находим в нём строчку dataDir=/tmp/zookeeper. Прописываем в данной строчке полный путь к нашей папке zookeeper-х.х.х. У меня это выглядит так: dataDir=C:\\ZooKeeper\\zookeeper-3.6.0

Теперь добавим системную переменную среды: ZOOKEEPER_HOME = C:\ ZooKeeper \zookeeper-3.4.9 и в конце системной переменной Path добавим запись: ;%ZOOKEEPER_HOME%\bin;

Запускаем командную строку и пишем команду:


Если всё сделано правильно, вы увидите примерно следующее.


В папке с Kafka находим папку config, в ней находим файл server.properties и открываем его.


Находим строку log.dirs= /tmp/kafka-logs и указываем в ней путь, куда Kafka будет сохранять логи: log.dirs=c:/kafka/kafka-logs.


В этой же папке редактируем файл zookeeper.properties. Строчку dataDir=/tmp/zookeeper меняем на dataDir=c:/kafka/zookeeper-data, не забывая при этом, после имени диска указывать путь к своей папке с Kafka. Если вы всё сделали правильно, можно запускать ZooKeeper и Kafka.


Для кого-то может оказаться неприятной неожиданностью, что никакого GUI для управления Kafka нет. Возможно, это потому, что сервис рассчитан на суровых нёрдов, работающих исключительно с консолью. Так или иначе, для запуска кафки нам потребуется командная строка.

Сначала надо запустить ZooKeeper. В папке с кафкой находим папку bin/windows, в ней находим файл для запуска сервиса zookeeper-server-start.bat, кликаем по нему. Ничего не происходит? Так и должно быть. Открываем в этой папке консоль и пишем:


Опять не работает? Это норма. Всё потому что zookeeper-server-start.bat для своей работы требует параметры, прописанные в файле zookeeper.properties, который, как мы помним, лежит в папке config. Пишем в консоль:


Теперь всё должно стартануть нормально.


Ещё раз открываем консоль в этой папке (ZooKeeper не закрывать!) и запускаем kafka:


Для того, чтобы не писать каждый раз команды в командной строке, можно воспользоваться старым проверенным способом и создать батник со следующим содержимым:

Работа с kafka из IDEA



В итоге файл pom.xml должен выглядеть так:


Класс, в котором будет создаваться консьюмер необходимо пометить аннотацией @EnableKafka.


Так же в файле настроек application.property необходимо указать параметр консьюмера groupe-id. Если этого не сделать, приложение не запустится. Параметр имеет тип String и может быть любым.

Усложняем проект

Реальные проекты с использованием Kafka конечно же сложнее, чем тот, который мы создали. Теперь, когда мы разобрались с базовыми функциями сервиса, рассмотрим, какие дополнительные возможности он предоставляет. Для начала усовершенствуем продюсера.



Если мы попробуем вручную создать объект KafkaTemplate, то увидим, что в конструктор в качестве параметра передаётся объект интерфейса ProducerFactory<K, V>, например DefaultKafkaProducerFactory<>. Для того, чтобы создать DefaultKafkaProducerFactory, нам нужно в его конструктор передать Map, содержащий настройки продюсера. Весь код по конфигурации и созданию продюсера вынесем в отдельный класс. Для этого создадим пакет config и в нём класс KafkaProducerConfig.

Теперь изменим тип передаваемого значения. Что если у нас не стандартный класс из библиотеки Java, а какой-нибудь кастомный DTO. Допустим такой.



Из объекта ConsumerRecord мы можем получить все интересующие нас параметры.


Мы видим, что вместо ключа на консоль выводятся какие-то кракозябры. Это потому, что для десериализации ключа по умолчанию используется StringDeserializer, и если мы хотим, чтобы ключ в целочисленном формате корректно отображался, мы должны изменить его на LongDeserializer. Для настройки консьюмера в пакете config создадим класс KafkaConsumerConfig.


Класс KafkaConsumerConfig очень похож на KafkaProducerConfig, который мы создавали ранее. Здесь так же присутствует Map, содержащий необходимые конфигурации, например, такие как десериализатор для ключа и значения. Созданная мапа используется при создании ConsumerFactory<>, которая в свою очередь, нужна для создания KafkaListenerContainerFactory<?>. Важная деталь: метод возвращающий KafkaListenerContainerFactory<?> должен называться kafkaListenerContainerFactory(), иначе Spring не сможет найти нужного бина и проект не скомпилируется. Запускаем.


Видим, что теперь ключ отображается как надо, а это значит, что всё работает. Конечно, возможности Apache Kafka далеко выходят за пределы тех, что описаны в данной статье, однако, надеюсь, прочитав её, вы составите представление о данном сервисе и, самое главное, сможете начать работу с ним.

Мойте руки чаще, носите маски, не выходите без необходимости на улицу, и будьте здоровы.

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

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

Авторский GitHub:

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

В этом руководстве мы предполагаем, что 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. Теперь откройте диалоговое окно системных переменных среды, открыв Панель управления -> Система -> Расширенные настройки системы -> Переменные среды.

(Путь и версия 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.

Как установить и запустить Apache Kafka в ОС Windows

Ниже приведено пошаговое руководство, которое научит вас устанавливать и запускать Apache Zookeeper и Apache Kafka в ОС Windows.

Введение

В этом руководстве мы извлечем Zookeeper и Kafka на диск C, но вы также можете выбрать другие места. Здесь мы хотим использовать полную версию zookeeper, а не ту, что поставляется с Kafka, потому что это экземпляр Zookeeper с одним узлом. Вы также можете запустить Kafka в пакете с zookeeper, он находится в библиотеке \ kafka \ bin \ windows.

монтаж

A. Установка JDK

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




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

5. Теперь нажмите ОК.
6. В только что открытом диалоговом окне «Переменные среды» есть столбец «Системные переменные», найдите в нем переменные пути.
7. Измените путь и введите ";% JAVA_HOME% \ bin", как показано ниже:


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


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

Б. Установка Zookeeper

1. Войдите в каталог настроек Zookeeper, например C: \ zookeeper-3.4.7 \ conf
2. Переименуйте "zoo_sample.cfg" в "zoo.cfg".
3. Откройте zoo.cfg в любом текстовом редакторе (например, в блокноте), я лично предпочитаю блокнот ++.
4. Найдите и отредактируйте dataDir = / tmp / zookeeper в: \ zookeeper-3.4.7 \ data.
5. Как и в Java, мы добавляем в системные переменные среды:
а. Добавьте ZOOKEEPER_HOME = C: \ zookeeper-3.4.7 в системные переменные
б. Отредактируйте системную переменную и назовите ее как путь Системная переменная% ZOOKEEPER_HOME% \ bin;
6. Измените порт Zookeeper по умолчанию (порт по умолчанию 2181) в файле zoo.cfg.
7. Откройте новый cmd, введите zkserver и запустите Zookeeper.
8. Приглашение командной строки выглядит следующим образом:


Поздравляем, Zookeeper готов и работает на порту 2181.

В. Установить Kafka

  1. Войдите в каталог конфигурации Kafka, например C: \ kafka_2.11-0.9.0.0 \ config.
  2. Отредактируйте файл server.properties
  3. Найдите и отредактируйте "log.dirs = / tmp / kafka-logs" на "log.dir = C: \ kafka_2.11-0.9.0.0 \ kafka-logs"
  4. Если Zookeeper запущен на другом компьютере или кластере, вы можете изменить "zookeeper.connect: 2181" на собственный IP-адрес и порт. В этой демонстрации мы использовали ту же машину, поэтому нет необходимости изменять ее. Также можно настроить порт Kafka и broker.id в файле. Остальные настройки остаются без изменений.
  5. Kafka по умолчанию будет работать на порту 9092 и подключаться к порту по умолчанию zookeeper: 2181.

D. Запустите сервер Kafka

Важно: перед запуском сервера Kafka убедитесь, что экземпляр Zookeeper готов и работает.

1. Войдите в каталог установки Kafka C: \ kafka_2.11-0.9.0.0 \
2. Нажмите Shift + правая клавиша, выберите параметр «Открыть окно команд», чтобы открыть командную строку.
3. Теперь введите. \ bin \ windows \ kafka-server-start.bat. \ config \ server.properties и нажмите Enter.


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


E. Создайте тему

  1. Теперь создайте тему, назовите ее «test» и коэффициент репликации = 1 (потому что работает только 1 сервер Kafka). Если в кластере работает более одного сервера Kafka, вы можете соответственно увеличить коэффициент репликации, чтобы улучшить доступность данных и отказоустойчивость системы.
  2. Откройте новую командную строку в C: \ kafka_2.11-0.9.0.0 \ bin \ windows.
  3. Введите следующую команду и нажмите Enter:


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

1. Откройте новую командную строку в C: \ kafka_2.11-0.9.0.0 \ bin \ windows.
2. Введите следующую команду, чтобы запустить производитель:

3. Снова откройте новую командную строку в том же месте C: \ kafka_2.11-0.9.0.0 \ bin \ windows.
4. Теперь введите следующую команду для запуска потребителя:

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



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

Исходный адрес:Setting Up and Running Apache Kafka on Windows OS
Автор статьи: Гопал Тивари
Переводчик: Сунь Вэй
Ответственный редактор: Чжун Хао

Интеллектуальная рекомендация

совместный запрос mysql с тремя таблицами (таблица сотрудников, таблица отделов, таблица зарплат)

1. Краткое изложение проблемы: (внизу есть инструкция по созданию таблицы, копирование можно непосредственно практиковать с помощью (mysql)) Найдите отделы, в которых есть хотя бы один сотрудник. Отоб.


[Загрузчик классов обучения JVM] Третий день пользовательского контента, связанного с загрузчиком классов


IP, сеанс и cookie

Это хорошая статья, но, к сожалению, она устарела.

Кто-нибудь знает способ достичь этого?

Хорошо, это, наконец, не сложно :)

  1. Загрузите Кафку и разархивируйте ее где угодно (скажем, C:/Kafka )
  2. Установить Cygwin

Отредактируйте \bin\kafka-run-class.sh и в конце файла измените

В разделе Переменные среды добавьте Java в путь системной переменной:

enter image description here

Вот это.. теперь вы можете запускать серверы ZooKeeper и Kafka и начать играть с темами и прочим..

Шаги как follows-

  1. Переменные среды Java должны быть установлены.
  2. Перейдите на страницу загрузок Apache Kafka и загрузите Scala 2.12 kafka_2.12-0.10.2.1.tgz
  3. Распакуйте его.

Откройте командную строку и запустите zookeeper-

Откройте новую командную строку и запустите Apache Kafka-

Откройте новую командную строку и создайте тему с именем javainuse-topic, которая имеет только один раздел и одну реплику.

C:\kafka_2.12-0.10.2.1>.\Bin\windows\Kafka- themes.bat --create - localhost: zookeeper: 2181 - коэффициент репликации 1 --partitions 1 --topic javainuse-topic

C:\kafka_2.12-0.10.2.1>.\Bin\windows\Kafka- console -roduction.bat --broker-list localhost: 9092 --topic javainuse-topic

Привет, мир, Javainuse

C:\kafka_2.12-0.10.2.1>.\Bin\windows\Kafka- console-consumer.bat --bootstrap-server localhost: 9092 --topic тема javainuse --from-begin

Подробные шаги, включая скриншоты и видео, доступны в этом blog- Начало работы с Apache Kafka

Более точный ответ на благо кого-либо еще интересующегося об этом, я загрузил двоичный файл и все работало прямо из коробки. Исходная версия, однако, не работала.

Это шаги, которые я выполнил для запуска kafka в Windows

Вероятно, вы обнаружите, что Kafka поставляется с Windows.bat файлами под папкой bin, чтобы помочь вам запустить Kafka под окнами. Однако эти файлы bat не обновляются с версии 0.8.0, а некоторые из правил Kafka изменились (в отношении тем и т.д.).

Я пробовал два способа решить эту проблему. Один из них - использовать Cygwin или MinGW для моделирования среды Linux и запуска оболочки Linux script, но было бы много других проблем, связанных с именами путей. Другое решение, которое проще и с меньшими проблемами, заключается в использовании исправленной версии файлов bat для Windows.

  • Загрузите любую бинарную версию (я загрузил kafka_2.11-0.10.2.0) из Kafka из https://kafka.apache.org/downloads
  • Извлеките его в любую папку (я извлек ее в папку "C:\Kafka" )
  • Открыть командную строку
  • Перейдите в папку, в которой вы извлекаете Kafka (C:\Kafka\kafka_2.11-0.10.2.0)
  • Запустите эту команду .\bin\windows\zookeeper-server-start.bat.\config\zookeeper.properties, чтобы запустить Zookeeper
  • Запустите эту команду .\bin\windows\kafka-server-start.bat.\config\server.properties, чтобы запустить Kafka


Теперь он работает!

В версии 0.9.0. в папке "bin" для Windows есть скрипты. Вы можете использовать их.

Запуск из оболочки Windows

По состоянию на апрель 2019 года загрузка Kafka с их сайта работала на Windows практически сразу из коробки.

Я столкнулся с двумя проблемами, когда я сделал это:

1) JAVA_HOME был установлен на неподдерживаемый JDK, что привело к такого рода ошибке

Исключение в потоке "main" java.lang.VerifyError: Неинициализированный объект существует в обратной ветки 209

Замена на JDK 11 решила проблему.

Работает от Cygwin

Если вместо .bat файлов вы хотите запустить .sh файлы из cygwin, на самом деле нужно сделать совсем немного, и даже после этого могут возникнуть проблемы, которые появятся позже. Я не могу порекомендовать эту опцию, но я использую ее, так как она довольно удобна для некоторых целей.

Если ваш путь JAVA_HOME содержит пробел, например "C:\Program Files\Java\Jdk. ", вы увидите что-то вроде этого:

bin/kafka-run-class.sh: строка 305: exec: C:\Программа: не найдена

Одним из решений является копирование JDK в путь без пробелов и соответствующее изменение домашней страницы Java.

Если вы не хотите изменять местоположение JDK, вы можете изменить переменную cygwin env следующим образом:

Кто-нибудь знает простой способ добиться этого?

Хорошо, это наконец не сложно :)

  1. Загрузите Kafka и распакуйте его где-нибудь в Ницце (скажем, C:/Kafka )
  2. Установить Cygwin

Отредактируйте \bin\kafka-run-class.sh и в конце файла измените

В Переменные среды добавьте Java в системную переменную Path:

enter image description here

Вот и все .. теперь вы можете запустить серверы ZooKeeper и Kafka и начать играть с темами и прочим ..

  1. Переменные среды Java должны быть установлены.
  2. Перейдите на загрузку Apache Kafka и загрузите Scala 2.12 kafka_2.12-0.10.2.1.tgz
  3. Распакуйте его.

Откройте cmd и запустите zookeeper-

Откройте новую команду Prompt и запустите Apache Kafka-

Откройте новую командную строку и создайте тему с именем javainuse-topic, которая имеет только один раздел и одну реплику.

C:\kafka_2.12-0.10.2.1>.\Bin\windows\kafka-themes.bat --create --zookeeper localhost: 2181 - коэффициент репликации 1 - разделы 1 - топическая тема javainuse

C:\kafka_2.12-0.10.2.1>.\Bin\windows\kafka-console -roduction.bat --broker-list localhost: 9092 --topic javainuse-topic

Привет, мир, Javainuse

C:\kafka_2.12-0.10.2.1>.\Bin\windows\kafka-console-consumer.bat --bootstrap-server localhost: 9092 --topic javainuse-topic --from-begin

Подробные шаги, включая скриншоты и видео, доступны в этом блоге - Начало работы с Apache Kafka

Более актуальный ответ для всех, кто еще интересуется этим, я скачал бинарный файл, и все работало прямо из коробки. Исходная версия, однако, не работала.

Вот шаги, которые я выполнил для запуска кафки в Windows

  1. Сначала установите Zookeeper (я загрузил v3.3.6) zookeeper-3.3.6.tar.gz
  2. Извлеките Zookeeper и выполните эту команду в powershell/cmd \zookeeper-3.3.6\bin> .\zkServer.cmd Теперь это должно создать экземпляр Zookeeper на localhost:2181
  3. Загрузите бинарную версию Kafka (я download v0.10.0.1) kafka_2.10-0.10.0.1.tgz
  4. Извлеките Кафку, пора модифицировать некоторые конфиги
  5. Внутри Kafka вы можете найти .\config\server.properties
  6. В .\config\server.properties заменить log.dirs=c:/kafka/kafka-logs
  7. Примечание. Обязательно создайте эти папки по соответствующим путям.
  8. Приятная новость: теперь Kafka поставляется со скриптами Windows .bat. Вы можете найти эти файлы в папке ./bin/windows
  9. Запустите powershell/cmd и выполните эту команду для запуска брокера Kafka .\bin\windows\kafka-server-start.bat .\config\server.properties
  10. СОВЕРШЕНО !, Теперь у вас есть работающий экземпляр Zookeeper и брокер Kafka.

Возможно, вы обнаружите, что Kafka поставляется с Windows .bat файлами в папке bin, чтобы помочь вам запустить Kafka под Windows. Тем не менее, эти файлы bat не обновляются с версии 0.8.0, и некоторая логика Кафки изменилась (в отношении тем и т.д.).

Я попробовал два способа решить эту проблему. Одним из них является использование Cygwin или MinGW для имитации среды Linux и запуска сценария Linux Shell, но будет множество других проблем, связанных с именами путей. Другое решение, которое является более простым и имеет меньше проблем, заключается в использовании исправленной версии файлов Windows bat.

Читайте также: