Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лаба 6

.docx
Скачиваний:
0
Добавлен:
09.07.2025
Размер:
534.35 Кб
Скачать

МИНИСТЕРСТВО ЦИФРОВОГО РАЗВИТИЯ, СВЯЗИ И МАССОВЫХ КОММУНИКАЦИЙ

Ордена Трудового Красного Знамени

Федеральное государственное бюджетное образовательное учреждение высшего образования

«Московский технический университет связи и информатики»

Кафедра «Математическая кибернетика и информационные технологии»

Дисциплина «Большие данные»

Лабораторная работа №6

Москва, 2024

Содержание

1 Цель работы 3

2 Ход работы 3

3 Вывод 11

1 Цель работы

Получить навыки работы с Kafka.

2 Ход работы

Apache Kafka – распределенный программный брокер сообщений для организации очередей в целях отслеживания больших потоков входных данных.

1) Будем работать с Kafka через стандартные .sh-скрипты. Вообще есть куча способов подключения, например, через python.

Зайдём в директорию /usr/hdp/3.1.4.0-315/kafka. Эта директория присутствует только на kafka брокерах. В амбари посмотрим адреса брокеров и зайдём на любой из них

Рисунок 1 – Просмотр брокеров на kafka

Рисунок 2 – Просмотр брокеров на kafka

Рисунок 3 – Запуск Kafka

2) Посмотрим, какие топики уже созданы (будет по крайней мере топик test)

bin/kafka-topics.sh --list –zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

ZooKeeper — инструмент-координатор, действует как общая служба конфигурации в системе. Работает как база для хранения метаданных о состоянии узлов кластера и расположении сообщений.

Рисунок 4 – Список топиков

Рисунок 5 – Список топиков

3) Создайте свой топик. Пусть фактор репликации у нас будет равен 2, партиций будет 3

./bin/kafka-topics.sh --create –zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181 --replication-factor 2 --partitions 3 --topic smirnov_bst-22-02

Topic - тема представляет собой категорию или канал, в который производитель отправляет сообщения. Она служит для организации и классификации потоков данных.

Рисунок 6 – Создание своего топика

4) Теперь что-нибудь запишем. Запустим producer Kafka: ./bin/kafka-console-producer.sh --topic smirnov_bst-22-02 --broker-list node4.mtuci.cloud.ru:6667,node5.mtuci.cloud.ru:6667,node6.mtuci.cloud.ru:6667

Producer - Производитель отвечает за генерацию и отправку сообщений в Kafka брокер. Он может выбирать topic, в который отправить сообщение, и при необходимости указывать ключ сообщения.

Broker - Брокеры представляют собой узлы в кластере Kafka, которые принимают, сохраняют и доставляют сообщения. Они выполняют функции хранения и репликации данных, обрабатывают запросы от производителей и потребителей, а также обеспечивают доступность и отказоустойчивость системы.

Рисунок 7 – Заполнение producer

5) Запустим Consumer в соседнем окне/вкладке. Считаем данные, которые записались в первую партицию за всё время существования топика:

./bin/kafka-console-consumer.sh --topic smirnov_bst-22-02 --bootstrap-server node4.mtuci.cloud.ru:6667,node5.mtuci.cloud.ru:6667,node6.mtuci.cloud.ru:6667 --from-beginning --partition 0

Consumer - Потребитель подписывается на одну или несколько тем и получает сообщения, отправленные в эти темы. Он может читать сообщения из разделов внутри темы и обрабатывать их согласно своей логики.

Рисунок 8 – Вывод consumer

6) Какие строчки записались в партицию 0?

3 строчка

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

Round-robin

Key_hash%n

Explicit partition ?

Round-robin - сообщения равномерно распределяются между различными партициями. Каждое новое сообщение будет отправлено в следующую партицию по циклу.

Key_hash%n - сообщения отправляются в партиции на основе хеш-значения ключа сообщения. Каждый ключ хэшируется и определяет, в какую партицию будет отправлено сообщение.

Explicit partition - отправитель указывает, в какую конкретную партицию отправить сообщение. В этом случае отправитель явно указывает номер партиции, в которую нужно отправить сообщение.

8) Выполним команду bin/kafka-topics.sh --describe --zookeeper

node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

Найдём свой топик. Какие выводы можно сделать о настройках nsync реплик? На каких хостах находятся лидер-реплики для каждой из созданных вами партиций?

Рисунок 9 – Описание топика

Какие выводы можно сделать о настройках nsync реплик? Ответ:

1. «partition»: Партиция топика, в которой данные разделены.

2. «Leader»: Брокер, который является «лидером» и отвечает за обслуживание чтения и записи в данной партиции.

3. «Replicas»: Список брокеров, на которых хранятся реплики данной партиции.

4. «Isr» (In-Sync Replica): Список брокеров, обслуживающих данную партицию, которые считаются «в синхронизированных репликах» и актуальны для чтения записей.

Лидер и воспроизведение важны для обеспечения отказоустойчивости и устойчивости брокера, а ISR используется для обеспечения непрерывной доступности данных.

На каких хостах находятся лидер-реплики для каждой из созданных вами партиций?

Партиция

Лидер

0

1001

1

1002

2

1003

9) Пометим топик на удаление

bin/kafka-topics.sh --delete --topic smirnov_bst-22-02 --zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

Рисунок 10 – Удаление топика

3 Вывод

Мы получили навыки работы с Kafka.

Соседние файлы в предмете Большие данные