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

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

.docx
Скачиваний:
0
Добавлен:
29.09.2026
Размер:
7 Мб
Скачать
☆

Министерство цифрового развития связи и массовых коммуникаций

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

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

высшего образования

«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ

СВЯЗИ И ИНФОРМАТИКИ»

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

Отчёт по лабораторной работе №2

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

Выполнил: студент группы БСТ2104

Ягудин Р.Р.

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

Москва, 2023 г.

На рисунке 1 представлена команда, позволяющая отображать все доступные тестовые сценарии

Рисунок 1 – Команда, отображающая все доступные тестовые сценарии

Рассмотрим работу программы pi, которая вычисляет число π с помощью метода Монте-Карло для заданного пользователем количества точек на плоскости.

На рисунке 2 представлена команда, вычисляющая приблизительное значение числа π, где 5 – количество контейнеров, работающих параллельно, 123456789 – количество точек, записанных для обработки в каждый контейнер.

Рисунок 2 – Команда, вычисляющая приблизительное значение числа π

Ответы на вопросы:

Чему равно полученное значение? Ответ: число Pi равно 3.14159321930849829571

Рисунок 3 – Увеличение количества точек в 10 раз

Увеличьте количество точек в 10 раз, сравните точность. Ответ: при увеличении количества точек в 10 раз число Pi стало равно 3.14159277542849425640

Зайдем в Ambari под УЗ monitor/monitor. По пути Services->YARN->Quick Links-> ResourceManager UI найдём ссылку на пользовательский интерфейс для мониторинга очередей, приложений, служб и действий потоков.

Во вкладке Applications находим свой запуск и нажимаем на его application ID (рис.4)

Рисунок 4 – Мой запуск

Здесь находим информацию о статусе приложения, его Application Master’e, а также получаем логи (рис.5)

Рисунок 5 – Информация о статусе приложения

В правом верхнем углу находим ссылку на информацию о Job, который был создан Resource Manager’ом (рис.6)

Рисунок 6 – Вывод информации о Job

Увеличиваем количество создаваемых точек, используя команду yarn jar /usr/hdp/current/hadoop-mapreduce-client/hadoop-mapreduce-examples.jar pi 5 12345678987

Рисунок 7 – Увеличение количества создаваемых точек

Заходим в ResourceManager UI и находим свой application. Кликаем на него и переходим во вкладку Resource Usage (рис.8)

Рисунок 8 – Информация о ресурсах

Заполняем таблицу с информацией о выделенных ресурсах.

Resource Usage

Информация по нодам

Сколько памяти занимает приложение на каждой ноде?

1 – 3 Gb

2 – 2 Gb

3 – 1 Gb

Сколько виртуальных ядер выделено под задачу на каждой ноде?

1 – 3 vcores

2 – 2 vcores

3 – 1 vcores

Какое количество контейнеров создано для решения задачи на каждой ноде?

1 – 3 containers

2 – 2 containers

3 – 1 containers

Таблица 1– Информация о ресурсах

Ответы на вопросы:

О серверах с каким запущенным сервисом YARN была получена информация? Ответ: 6,4,5

Запускаем ещё один терминал, подключаемся к ноде и выполняем команду yarn top, с помощью которой можно увидеть статус выполнения задач и количество выделенных ресурсов без использования web ui. До завершения работы приложения копируем его app_id, нажимаем q, а затем enter, чтобы выйти из утилиты yarn top

Рисунок 9 – Вывод информации yarn top

Выполняем команду yarn app --kill application_1697564035332_0008 для своего application

Рисунок 10 – Вывод команды yarn kill

Работа приложения завершена. Откроем вкладку applications и убедимся, что State нашего приложения равен Killed (рис.11)

Рисунок 11 – Вывод информации yarn kill в yarn

Выполняю запуск тестового сценария teragen. Этот сценарий, который позволяет создавать большие файлы с случайными данными. Эти файлы используются для проверки, насколько быстро и эффективно компьютерные кластеры (например, Hadoop) могут обрабатывать такие данные. (рис.12,13,14)

Рисунок 12 – Команда для создания тестового сценария teragen

Произвожу вывод информации тестового сценария teragen через команду yarn top (рис.13)

Рисунок 13 – Вывод информации тестового сценария teragen через команду yarn top

Рисунок 14 – Вывод содержимого файла teragen

Заходим в ResourceManager UI и находим свой application тестового сценария teragen. Кликаем на него и переходим во вкладку Resource Usage (рис.15)

Рисунок 15 – Информация о ресурсах

Заполняем таблицу с информацией о выделенных ресурсах.

Resource Usage

Информация по нодам

Сколько памяти занимает приложение на каждой ноде?

1 – 1 Gb

2 – 0 Gb

3 – 0 Gb

Сколько виртуальных ядер выделено под задачу на каждой ноде?

1 – 1 vcores

2 – 0 vcores

3 – 0 vcores

Какое количество контейнеров создано для решения задачи на каждой ноде?

1 – 1 containers

2 – 0 containers

3 – 0 containers

Таблица 2– Информация о ресурсах

Hadoop streaming

В директории hdfs /data/sample/articles-sample лежит файл, с сэмплом из нескольких статей Wikipedia.com на английском. Создать Hadoop-streaming программу, которая бы удаляла из текста все вхождения следующих слов:

['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've", "you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they', 'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that', "that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have', 'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if', 'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against', 'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to', 'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each', 'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same', 'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should', "should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn', "couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn', "hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn', "mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn', "wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"].

На рисунке 16 представлен код реализации Hadoop-streaming программы

Рисунок 16 – Код реализации Hadoop-streaming программы

На рисунке 17 представлена команда для локального запуска программы и результат её выполнения

Рисунок 17 – Результат локального запуска программы

На рисунке 18 представлена команда для запуска программы в yarn, на рисунке 19 представлен вывод содержимого файла ap.py

Рисунок 18 – Команда для запуска программы в yarn

Рисунок 19 – Вывод содержимого файла ap.py

Дополнительные задания

  1. Посчитайте число вхождений слов длиной от 6 до 9 символов. Результат приведите к нижнему регистру и отсортируйте по убыванию числа вхождений, в случае равенства – лексикографически.

Рисунок 20 – Код реализации подсчёта числа вхождений слов

Рисунок 21 – Результат работы программы

Рисунок 22 – Команда для запуска программы в yarn

Рисунок 23 – Вывод содержимого файла ap2.py

Вывод:

В результате выполнения данной лабораторной работы я получил практические навыки работы с фреймворками MapReduce и YARN.

11