BI Consult Desktop Logo BI Consult Mobile Logo
  • Russian BI Исследование российских bi
  • Перейти на Fine BI
  • Контакты
  • +7 812 334-08-01
    +7 499 608-13-06
  • Отправить сообщение
  • Главная
  • Продукты Эксперт-BI
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Сельское хозяйство
    • Энергетика
    • FMCG
    • Девелоперы
    • Маркетплейсы
    • Пищевая промышленность
    • Фармацевтика
    • Построение Data Platform
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и FP&A
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • IBP
    • ИТ (CIO)
    • Закупки
  • Платформы
    • Системы бизнес-анализа (BI)
    • Интегрированное бизнес-планирование (IBP)
    • Хранилища данных (DWH / Lakehouse)
    • Каталоги данных (Data Catalog)
    • Системы ETL и ELT
    • AI / Исскуственный интеллект
    • Шина данных (ESB)
    • Система управления мастер-данными (MDM)
    • Семантический слой
  • Услуги
    • Переход на отечественные BI и DWH системы
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений и DWH
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Курсы
    • Учебный курс Информационная грамотность (Data Literacy)
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Greenplum
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt (Data Build Tool)
  • Компания
    • Руководство
    • Новости
    • Клиенты
    • Карьера
    • Скачать
    • Контакты

BI

  • FineBI
  • FineReport
  • FineDataLink
  • FineChatBI (FineAI)
  • Коннекторы данных из 1С в BI
  • Airflow / Nifi
  • Visiology
  • PIX BI
  • Modus BI
  • Yandex.DataLens
  • Open-source BI: Superset/Metabase
  • Luxms BI
  • AW BI + Alpha BI
  • FlyBI + Форсайт. Аналитическая Платформа
  • Loginom
  • Триафлай
  • AI / Исскуственный интеллект
  • Optimacros
  • Навигатор BI
  • Семантический слой

СУБД

  • Arenadata
  • ClickHouse
  • Greenplum
  • Postgres Professional
  • TData

Другое

  • Построение Data Platform
    • Аналитическое хранилище данных
    • Data Lake и Data Engineering
    • Подробнее про Data Lake
    • Внедрение Lakehouse
      • Apache Doris
      • StarRocks
      • Trino
    • Миграция витрин из пропиетарных DWH на новый стек
    • Учебный курс "Современная архитектура хранилища данных"
Главная » Российские платформы современного стека хранения, обработки и анализа данных » Системы ETL и ELT » Airflow + NiFi » Apache Kafka: основные операции

Apache Kafka: основные операции

Предлагаю сначала реализовать  конфигурацию «один узел - один брокер», а затем - конфигурацию «один узел - несколько брокеров».

Что у Вас уже должно быть установлено:  Java, ZooKeeper и Kafka.

Прежде, чем мы перейдем  к настройке кластера Kafka, необходимо запустить ZooKeeper, поскольку кластер Kafka использует ZooKeeper.

 

Запускаем ZooKeeper

Открываем терминал и вводим следующую команду:

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

 

Запускаем брокер Kafka

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

 

После запуска Kafka Broker введите команду jps на терминале ZooKeeper, Вы увидите следующее сообщение:

821 QuorumPeerMain
928 Kafka
931 Jps

 

Кроме того, Вы увидите два демона, запущенных на терминале, из которых QuorumPeerMain — это демон ZooKeeper, а другой — демон Kafka.

 

Конфигурация «один узел - один брокер»

Данная конфигурация подразумевает наличие экземпляра ZooKeeper и id брокера. Алгоритм настройки:

1)  Создание топика Kafka: Для создания тем на сервере Kafka используйте утилиту командной строки под названием kafka-topics.sh. Откройте новый терминал и введите пример, приведенный ниже.

2)  Синтаксис

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1 
--partitions 1 --topic topic-name

 

Пример

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 1   
--partitions 1 --topic Hello-Kafka

 

Таким образом, мы создали топик под названием Hello-Kafka с одним разделом и одним фактором реплики. Вывод, созданный выше, будет примерно следующий:

 

3) Вывод – Создан топик «Hello-Kafka»

После создания топика Вы в окне терминала брокера Kafka Вы увидите уведомление об успешном завершении операции. Кроме того, для созданного топика в папке «tmp/kafka-logs/» в «/в файле config/server.properties появится специальный журнал.

 

Список топиков

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

 

Синтаксис

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

 

Вывод

Hello-Kafka

 

Поскольку мы создали только 1 топик, в результате выполнения команды мы увидим только 1 название – «Hello-Kafka». Если бы мы создали несколько топик, то на выходе мы бы получили несколько названий созданных нами топиков.

 

Запуск продюсера для отправки  сообщений

Синтаксис

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic topic-name

 

Из приведенного выше синтаксиса следует, что для клиента командной строки производителя требуются два основных параметра −

Broker-list – это список брокеров, которым мы хотим отправлять сообщения. В нашем случае у нас есть только один брокер. Файл Config/server.properties содержит идентификатор порта брокера. Посколько мы знаем, что наш брокер слушает порт 9092, мы можем указать его напрямую.

 

Kafka Topic – пример топика в Apache Kafka.

Пример

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Hello-Kafka

Продюсер будет ожидать ввода данных из stdin и опубликует их в кластере Kafka. По умолчанию каждая новая строка будет опубликована как новое сообщение, свойства производителя по умолчанию задаются в файле config/producer.properties. Теперь наберите несколько строк сообщений в терминале, как показано ниже.

 

Вывод

$ bin/kafka-console-producer.sh --broker-list localhost:9092 
--topic Hello-Kafka[2016-01-16 13:50:45,931] 
WARN property topic is not valid (kafka.utils.Verifia-bleProperties)
Hello
My first message

 

Запустите консьюмера, получающего сообщения

Как и в случае с продюсером, свойства потребителя задаются в файле config/consumer.proper-ties. Откройте новый терминал и введите следующий синтаксис:

 

Синтаксис

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic topic-name 
--from-beginning

 

Пример

bin/kafka-console-consumer.sh --zookeeper localhost:2181 —topic Hello-Kafka 
--from-beginning

 

Вывод

Hello
My first message
My second message

Теперь Вы можете ввести сообщения из терминала продюсера после чего они появятся в терминале консьюмера.

Итак, мы поговорили о кластере с одним узлом и одним брокером. Теперь давайте перейдем к конфигурации с несколькими брокерами.

 

Конфигурация «один узел - несколько брокеров»

Перед настройкой кластера с несколькими брокерами запустим сервер ZooKeeper.

Создание нескольких брокеров Kafka - у нас еже есть 1 созданный экземпляр, но нам необходимо  несколько экземпляров. Поэтому мы копируем существующие настройки сервера в  2 новых конфигурационных файла и присваиваем им имя server-one.properties и server-two.properties соответственно. Затем редактируем эти два файла и вносим в них следующие изменения:

config/server-one.properties

# The id of the broker. This m
ust be set to a unique integer for each broker.
broker.id=1
# The port the socket server listens on
port=9093
# A comma seperated list of directories under which to store log files
log.dirs=/tmp/kafka-logs-1

 

config/server-two.properties

# The id of the broker. This must be set to a unique integer for each broker.
broker.id=2
# The port the socket server listens on
port=9094
# A comma seperated list of directories under which to store log files
log.dirs=/tmp/kafka-logs-2

 

Запуск нескольких брокеров − После внесения всех изменений на трех серверах откройте три новых терминала для запуска каждого брокера по очереди.

Broker1

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

 

Broker2

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

 

Broker3

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

 

Теперь у нас есть три разных брокера. Попробуйте последовательно запустить их.

 

Создание топика

Поскольку у нас работают три разных брокера, назначим значение коэффициента репликации равным трем. Если у Вас работают два брокера, значение коэффициента репликации должно быть равно двум.

 

Синтаксис

bin/kafka-topics.sh --create --zookeeper localhost:2181 –replica
tion-factor 3 
-partitions 1 --topic topic-name

 

Пример

bin/kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 3 
-partitions 1 --topic Multibrokerapplication

 

Вывод

Создание топика “Multibrokerapplication”

Команда Describe используется для проверки того, какой брокер прослушивает текущий топик, как показано ниже:

bin/kafka-topics.sh --describe --zookeeper localhost:2181 
--topic Multibrokerappli-cation

 

Вывод

bin/kafka-topics.sh --describe --zookeeper localhost:2181 
--topic Multibrokerappli-cation
 
Topic:Multibrokerapplication    PartitionCount:1 
ReplicationFactor:3 Configs:
   
Topic:Multibrokerapplication Partition:0 Leader:0 
Replicas:0,2,1 Isr:0,2,1
 

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

В нашем случае мы видим, что наш первый брокер (с broker.id 0) является лидером. Тогда Replicas:0,2,1 означает, что все брокеры реплицируют эту тему, Isr - это набор синхронизированных реплик. Это подмножество реплик, которые в данный момент “живы” и управляются лидером.

 

Запуск продюсера для отправки сообщений

Процедура такая же, как и в случае с одним брокером.

 

Пример

bin/kafka-console-producer.sh --broker-list localhost:9092 
--topic Multibrokerapplication

 

Вывод

bin/kafka-console-producer.sh --broker-list localhost:9092 --topic Multibrokerapplication
[2016-01-20 19:27:21,045] WARN Property topic is not valid (kafka.utils.Verifia-bleProperties)
This is single node-multi broker demo
This is the second message

 

Запустите консьюмера, получающего сообщения

Процедура такая же, как и в случае с одним брокером

 

Пример

bin/kafka-console-consumer.sh --zookeeper localhost:2181 
—topic Multibrokerapplica-tion --from-beginning

 

Вывод

bin/kafka-console-consumer.sh --zookeeper localhost:2181 
—topic Multibrokerapplica-tion —from-beginning
This is single node-multi broker demo
This is the second message

 

Основные операции с новыми топиками

В этой главе мы рассмотрим различные базовые операции с топиками.

 

Изменение топика

Вы уже поняли, как создать топик в кластере Kafka. Теперь давайте изменим созданную тему с помощью следующей команды:

 

Синтаксис:

bin/kafka-topics.sh —zookeeper localhost:2181 --alter --topic topic_name 
--parti-tions count
 

Пример

Мы уже создали тему «Hello-Kafka» с одним разделом и одним фактором репликации.
 
Теперь с помощью команды «alter» мы изменили количество разделов.
bin/kafka-topics.sh --zookeeper localhost:2181 
--alter --topic Hello-kafka --parti-tions 2

 

Вывод

ВНИМАНИЕ: Увеличение числа разделов для топиков, содержащих ключи, приведете к упорядочиванию сообщений. Добавление разделов прошло успешно.

 

Удаление топика

Для удаления топика используйте следующий синтаксис:

 

Синтаксис

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic topic_name

 

Пример

bin/kafka-topics.sh --zookeeper localhost:2181 --delete --topic Hello-kafka

 

Вывод

> Topic Hello-kafka marked for deletion
 

Примечание: если для параметра delete.topic.enable не указано значение  true, данная операция  не будет обработана. 

 

Узнать стоимость решенияЗапросить видео презентацию

← Предыдущая статья
Оркестрация дата пайплайнов в системе подготовки данных
Следующая статья →
Apache Kafka – архитектура кластера
Запросить видео презентацию Запросить доступ к демо стенду online Узнать стоимость лицензий

Задать вопрос

loading...

Решения

Анализировать ФинансыУвеличивайте ПродажиОптимальный Склад и ЛогистикаМаркетинговые Метрики

Клиенты
  • Компания «Бизон-Трейд» является официальным дилером ведущих мировых производителей сельскохозяйственной техники (Fendt, Valtra, Lemken и др.) на Юге России. Входит в состав агрохолдинга «Бизон», основанного в 1994 году. Имеет 8 филиалов в Краснодарском и Ставропольском краях, Ростовской области.

  • НПФ «Будущее» — один из крупнейших негосударственных пенсионных фондов России, предоставляющий услуги по пенсионному обеспечению и накоплениям. Фонд активно внедряет цифровые технологии для повышения качества обслуживания клиентов.

  • «Восток-Запад» – крупнейший поставщик продуктов в рестораны, кафе, гостиницы, кейтеринговые компании, столовые, комбинаты питания и кондитерские производства. 300+ городов регулярной доставки по всей территории России и странам СНГ; 3500+ товаров профессиональных брендов.

  • Нашей компанией был реализован проект автоматизации конвейера данных на базе СПО ETL-инструмента Apache NiFi для клиента ООО «Императорский Монетный Двор» в части актуализации данных, передаваемых из Системы Oracle в Anaplan.

  • Решения
    • Дистрибуция
    • Розничная торговля
    • Производство
    • Операторы связи
    • Страхование
    • Банки
    • Лизинг
    • Логистика
    • Нефтегазовый сектор
    • Медицина
    • Сеть ресторанов
    • E-Commerce
    • Энергетика
    • Фармацевтика
  • Услуги
    • Переход на отечественные BI и DWH
    • Консалтинг
    • Пилотный проект
    • Обучение и сертификация
    • Бесплатное обучение
    • Техническая поддержка
    • Технические задания
    • Сбор требований для проекта внедрения BI-системы
    • CI/CD для DWH
    • Аудит BI приложений
    • Выделенная команда
    • Настойка и поддержка баз данных
    • Разработка BI Стратегии
    • Styleguide для BI-системы
    • Как выбрать BI-систему
  • Платформы
    • FineBI
    • FineReport
    • FineDataLink
    • Коннекторы данных из 1С в BI
    • Airflow + NiFi
    • Visiology
    • Luxms BI
    • Modus BI
    • PIX BI
    • Arenadata
    • ClickHouse
    • Greenplum
    • Postgres Professional
    • Open-source BI: Superset/Metabase
    • Loginom
    • Yandex.DataLens
    • AI / Исскуственный интеллект
    • Optimacros
    • Шины данных
  • Курсы
    • Учебный курс Информационная грамотность
    • Учебный курс для бизнес-аналитиков
    • Учебный курс для системных аналитиков
    • Учебный курс по Data Governance
    • Учебный курс Как стать CDO
    • Учебный курс Современная архитектура хранилища данных
    • Учебный курс по Fine BI
    • Учебный курс по FineReport
    • Учебный курс по DWH
    • Учебный курс по Data Science (ML, AI)
    • Учебный курс по PostgreSQL
    • Учебный курс по Apache Airflow и NiFi
    • Учебный курс по Open-source BI
    • Учебный курс по ClickHouse
    • Учебный курс по DataLens
    • Учебный курс по Loginom
    • Учебный курс по Modus BI и ETL
    • Учебный курс по Visiology
    • Учебный курс по dbt
  • Функциональные решения
    • Создание Data Lake
    • Цифровая трансформация
    • Управление по KPI
    • Финансы
    • Продажи
    • Склад
    • HR
    • Маркетинг
    • Внутренний аудит
    • Категорийный менеджмент
    • S&OP и прогнозная аналитика
    • Геоаналитика
    • Цепочки поставок (SCM)
    • AutoML
    • Process Mining
    • Сквозная аналитика
  • Компания
    • О нас
    • Руководство
    • Новости
    • Клиенты
    • Скачать
    • Контакты
    • Политика конфиденциальности
RutubeVkontakteLinkedInYouTube
ООО "Би Ай Консалт",
ИНН: 7811437757,
ОГРН: 1097847154184
199178, Россия,
Санкт-Петербург,
6-ая линия В.О., Д. 63, 4 этаж
Тел: +7 (812) 334-08-01
Тел: +7 (499) 608-13-06
E-mail: info@biconsult.ru

 

 

 

 

 

×

Пользуясь сайтом, вы соглашаетесь с использованием cookies и политикой конфиденциальности.