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

Лабораторная работа 7

.docx
Скачиваний:
16
Добавлен:
12.02.2024
Размер:
1.82 Mб
Скачать

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

Ордена Трудового Красного Знамени федеральное государственное бюджетное образовательное учреждение высшего образования

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

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

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

Отчет по лабораторной работе 7

Выполнил:

студент группы БСТ2104

Станишевский И.А.

Проверила: Тимофеева А. И.

Москва, 2023 г.

Содержание

Цель работы 3

Ход выполнения 3

Вывод: 7

Цель работы 3

Ход выполнения 3

Вывод: 7

Цель работы

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

Ход выполнения

Kafka — масштабируемый кластер со множеством взаимозаменяемых серверов, в которые добавляются новые брокеры, распределяющие задачи между собой.

В Ambari найдем адреса брокеров, заходите на любой из них. Зайдите в директорию /usr/hdp/3.1.4.0-315/kafka

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

Посмотрим, какие топики уже созданы. Используем команду: bin/kafka-topics.sh --list --zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

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

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

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

Создадим свой топик. Пусть фактор репликации у нас будет равен 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 stanishevskii_bst-21-4

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

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

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

Запустим producer Kafka и запишем несколько строчек. Для этого используем команду: ./bin/kafka-console-producer.sh --topic stanishevskii_bst-21-4--broker-list node4.mtuci.cloud.ru:6667,node5.mtuci.cloud.ru:6667,node6.mtuci.cloud.ru:6667

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

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

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

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

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

Partition - Разделы являются логическими подразделениями внутри каждой темы. Какие строчки записались в партицию 0? Ответ: 3,6

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

  • Round-robin

  • Key_hash%n

  • Explicit partition?

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

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

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

Выполним команду bin/kafka-topics.sh --describe --zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

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

Найдем свой топик (можно дописать | grep <Your_Login> для поиска по шаблону). Какие выводы можно сделать о настройках nsync реплик? Ответ:

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

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

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

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

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

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

Партиция

Лидер

0

1003

1

1001

2

1002

Удалим свой топик. Команда для удаления: bin/kafka-topics.sh --delete --topic stanishevskii_bst-21-4--zookeeper node2.mtuci.cloud.ru:2181,node1.mtuci.cloud.ru:2181,node3.mtuci.cloud.ru:2181

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

Проверим удаление топика.

Рисунок 8 – Проверка удаления топика

Вывод:

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