Введение
В древней стране восходящего солнца, усеянной среди величественных пиков Мунт-Фузи, процветал скрытый вольный поселок ниндзя. Здесь искусство скрытности, точности и находчивости дорабатывалось до совершенства. Среди элитных рядов этого поселка стояла Юки, известная мастерница ниндзяских оружий.
Кузня Юки была достойна внимания, свидетельством ее непоколебимой преданности и изобретательности. Из наилучшего стали она изготовляла клинки, которые могли легко и грациозно разрезать воздух, шурикен, которые могли точно попасть по мишени, и кунай, которые могли пробить даже самую прочные доспехи.
Однако истинная мастерство Юки заключалось не только в ее ремесле, но и в ее способности управлять ресурсами поселка. По мере роста ниндзяского клана росла и потребность в оружии и снаряжении, и Юки обнаружила себя с задачей обеспечения того, чтобы каждый ниндзя имел доступ к инструментам, которые ему нужны, когда он их нуждается.
В этом поиске Юки обнаружила силу Менеджера ресурсов Hadoop, мощный инструмент, который позволил ей эффективно распределять и управлять ресурсами поселка, обеспечивая успех каждой миссии ниндзя.
Понимание Менеджера ресурсов Hadoop
В этом шаге мы углубимся в основы Менеджера ресурсов Hadoop и его роль в экосистеме Hadoop.
Во - первых, смените стандартного пользователя:
su - hadoop
Менеджер ресурсов Hadoop - это важный компонент архитектуры YARN (Yet Another Resource Negotiator) в Hadoop. Он отвечает за управление вычислительными ресурсами кластера и планирование приложений по доступным узлам.
Давайте сначала изучим архитектуру Менеджера ресурсов:
+------------------+
| Менеджер ресурсов|
+------------------+
| Планировщик |
| Мастер приложения
| Менеджер узлов |
+------------------+
Менеджер ресурсов состоит из трех основных компонентов:
- Планировщик: Этот компонент отвечает за распределение ресурсов между различными запущенными приложениями в соответствии с заранее определенными политиками планирования.
- Менеджер приложений: Этот компонент отвечает за прием подачи заданий, переговоры о первом контейнере для запуска Мастера приложения и предоставление сервиса для перезапуска контейнера Мастера приложения в случае неудачи.
- Менеджер узлов: Этот компонент работает на каждом узле кластера и отвечает за запуск и мониторинг контейнеров, назначенных Планировщиком.
Для лучшего понимания функциональности Менеджера ресурсов рассмотрим простой пример.
Подайте пример задания MapReduce в кластер:
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar pi 16 1000000
Проверьте статус задания:
yarn application -list
Вывод должен выглядеть примерно так:
2024-03-23 22:48:44,206 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total number of applications (application-types: [], states: [SUBMITTED, ACCEPTED, RUNNING] and tags: []):1
Application-Id Application-Name Application-Type User Queue State Final-State Progress Tracking-URL
application_1711205220447_0001 QuasiMonteCarlo MAPREDUCE hadoop default RUNNING UNDEFINED
В этом примере мы подаем задание MapReduce в кластер с помощью команды yarn. Менеджер ресурсов получает запрос на задание и назначает необходимые ресурсы (контейнеры) для запуска задания. Затем мы можем проверить статус задания и просмотреть логи с использованием предоставленных команд.
Настройка Менеджера ресурсов
В этом шаге мы рассмотрим, как настроить Менеджер ресурсов, чтобы удовлетворить специфические потребности нашего вольного поселка ниндзя.
Поведение Менеджера ресурсов можно настроить с помощью различных параметров конфигурации. Эти параметры обычно настраиваются в файле yarn-site.xml, расположенном в директории конфигурации Hadoop (/home/hadoop/hadoop/etc/hadoop).
Посмотрим на файл конфигурации 'yarn' и добавим для него дополнительные настройки:
vim /home/hadoop/hadoop/etc/hadoop/yarn-site.xml
Добавим настройки:
<!-- Укажите политику планирования -->
<property>
<name>yarn.resourcemanager.scheduler.class</name>
<value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>
<!-- Настройте максимальное количество приложений, которые могут выполняться одновременно -->
<property>
<name>yarn.scheduler.maximum-allocation-mb</name>
<value>8192</value>
</property>
<!-- Настройте минимальное и максимальное количество виртуальных ядер на контейнер -->
<property>
<name>yarn.scheduler.minimum-allocation-vcores</name>
<value>1</value>
</property>
<property>
<name>yarn.scheduler.maximum-allocation-vcores</name>
<value>4</value>
</property>
В этом файле конфигурации мы установили следующие параметры:
yarn.resourcemanager.scheduler.class: Указывает политику планирования, которую нужно использовать. В данном случае мы используем Fair Scheduler, который обеспечивает равномерное распределение ресурсов между приложениями.yarn.scheduler.maximum-allocation-mb: Задает максимальное количество памяти (в мегабайтах), которое можно выделить для одного контейнера.yarn.scheduler.minimum-allocation-vcoresиyarn.scheduler.maximum-allocation-vcores: Определяют минимальное и максимальное количество виртуальных ядер, которые могут быть выделены для контейнера соответственно.
Для применения этих изменений конфигурации нам нужно перезапустить службы Hadoop.
Мониторинг и управление приложениями
В этом шаге мы узнаем, как мониторить и управлять приложениями, запускающимися на кластере Hadoop, с использованием Менеджера ресурсов.
Менеджер ресурсов предоставляет веб - интерфейс пользователя (UI), который позволяет вам мониторить и управлять ресурсами кластера и запущенными приложениями. Чтобы получить доступ к UI Менеджера ресурсов, откройте веб - браузер и перейдите по адресу http://<имя_узла_менеджера_ресурсов>:8088.
В UI Менеджера ресурсов вы увидите различные разделы, которые предоставляют информацию о кластере, узлах и приложениях. Вот некоторые ключевые функции:
- Метрики кластера: Этот раздел отображает общие метрики кластера, такие как суммарные доступные ресурсы, количество запущенных приложений и использование ресурсов.
- Менеджеры узлов: Этот раздел перечисляет все активные Менеджеры узлов в кластере, а также их статус, доступные ресурсы и запущенные контейнеры.
- Запущенные приложения: Этот раздел показывает текущие запущенные приложения, их прогресс, использование ресурсов и другие подробности.
- История приложений: Этот раздел предоставляет историческое представление о завершенных приложениях, включая их логи и метрики.
Для демонстрации того, как управлять приложениями с использованием UI Менеджера ресурсов, давайте поднимем новое приложение в кластер.
## Подать задание WordCount в кластер
yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /home/hadoop/input /home/hadoop/output
Этот скрипт подает задание MapReduce WordCount в кластер. Перед запуском скрипта убедитесь, что вы создали директорию ввода и поместили в нее несколько текстовых файлов:
hdfs dfs -mkdir -p /home/hadoop/input
hdfs dfs -put /home/hadoop/hello.txt /home/hadoop/input
После подачи задания вы можете отслеживать его прогресс и управлять им из UI Менеджера ресурсов. Вы можете просмотреть логи задания, убить задание, если необходимо, или проверить директорию вывода после завершения задания.
Посмотреть содержимое файла ввода:
hadoop:~/ $ hadoop fs -cat /home/hadoop/input/* [22:56:37]
hello labex
hello hadoop
hello spark
hello flink
Посмотреть содержимое файла вывода:
hadoop:~/ $ hadoop fs -cat /home/hadoop/output/* [22:57:37]
flink 1
hadoop 1
hello 4
labex 1
spark 1
Резюме
В этом практическом занятии мы изучили Менеджер ресурсов Hadoop, мощный инструмент, который позволяет эффективно распределять и управлять ресурсами в кластере Hadoop. Мы углубились в архитектуру Менеджера ресурсов, узнали, как настроить его для удовлетворения конкретных потребностей, и обнаружили различные методы мониторинга и управления приложениями, запускающимися на кластере.
Путем путешествия с Юки, мастерницей ниндзяских оружий, мы увидели трансформирующую силу Менеджера ресурсов в обеспечении того, чтобы каждый ниндзя имел доступ к инструментам, необходимым для успешных миссий. Как и Юки овладела искусством управления ресурсами, мы также можем использовать возможности Менеджера ресурсов Hadoop для оптимизации наших рабочих процессов обработки больших данных.
Это практическое занятие не только дало возможность получить hands - on опыт работы с Менеджером ресурсов, но и в灌输ло более глубокое понимание экосистемы Hadoop и ее многофункциональных компонентов. Принимая принципы управления ресурсами и эффективного планирования, мы можем открыть новые возможности в области обработки данных и справляться с самыми сложными задачами обработки больших данных.



