Лабораторная работа №2
.docxМинистерство цифрового развития связи и массовых коммуникаций
Ордена Трудового Красного Знамени
Федеральное государственное бюджетное образовательное учреждение
высшего образования
«МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ
СВЯЗИ И ИНФОРМАТИКИ»
Кафедра «Математическая кибернетика и информационные технологии»
Отчёт по лабораторной работе №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
Дополнительные задания
Посчитайте число вхождений слов длиной от 6 до 9 символов. Результат приведите к нижнему регистру и отсортируйте по убыванию числа вхождений, в случае равенства – лексикографически.
Рисунок 20 – Код реализации подсчёта числа вхождений слов
Рисунок 21 – Результат работы программы
Рисунок 22 – Команда для запуска программы в yarn
Рисунок 23 – Вывод содержимого файла ap2.py
Вывод:
В результате выполнения данной лабораторной работы я получил практические навыки работы с фреймворками MapReduce и YARN.
