Мастерство в управлении ресурсами ниндзя

HadoopHadoopBeginner
Практиковаться сейчас

💡 Этот учебник переведен с английского с помощью ИИ. Чтобы просмотреть оригинал, вы можете перейти на английский оригинал

Введение

В древней стране восходящего солнца, усеянной среди величественных пиков Мунт-Фузи, процветал скрытый вольный поселок ниндзя. Здесь искусство скрытности, точности и находчивости дорабатывалось до совершенства. Среди элитных рядов этого поселка стояла Юки, известная мастерница ниндзяских оружий.

Кузня Юки была достойна внимания, свидетельством ее непоколебимой преданности и изобретательности. Из наилучшего стали она изготовляла клинки, которые могли легко и грациозно разрезать воздух, шурикен, которые могли точно попасть по мишени, и кунай, которые могли пробить даже самую прочные доспехи.

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

В этом поиске Юки обнаружила силу Менеджера ресурсов Hadoop, мощный инструмент, который позволил ей эффективно распределять и управлять ресурсами поселка, обеспечивая успех каждой миссии ниндзя.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL hadoop(("Hadoop")) -.-> hadoop/HadoopYARNGroup(["Hadoop YARN"]) hadoop/HadoopYARNGroup -.-> hadoop/yarn_setup("Hadoop YARN Basic Setup") hadoop/HadoopYARNGroup -.-> hadoop/yarn_app("Yarn Commands application") hadoop/HadoopYARNGroup -.-> hadoop/yarn_node("Yarn Commands node") hadoop/HadoopYARNGroup -.-> hadoop/resource_manager("Resource Manager") hadoop/HadoopYARNGroup -.-> hadoop/node_manager("Node Manager") subgraph Lab Skills hadoop/yarn_setup -.-> lab-288992{{"Мастерство в управлении ресурсами ниндзя"}} hadoop/yarn_app -.-> lab-288992{{"Мастерство в управлении ресурсами ниндзя"}} hadoop/yarn_node -.-> lab-288992{{"Мастерство в управлении ресурсами ниндзя"}} hadoop/resource_manager -.-> lab-288992{{"Мастерство в управлении ресурсами ниндзя"}} hadoop/node_manager -.-> lab-288992{{"Мастерство в управлении ресурсами ниндзя"}} end

Понимание Менеджера ресурсов Hadoop

В этом шаге мы углубимся в основы Менеджера ресурсов Hadoop и его роль в экосистеме Hadoop.

Во - первых, смените стандартного пользователя:

su - hadoop

Менеджер ресурсов Hadoop - это важный компонент архитектуры YARN (Yet Another Resource Negotiator) в Hadoop. Он отвечает за управление вычислительными ресурсами кластера и планирование приложений по доступным узлам.

Давайте сначала изучим архитектуру Менеджера ресурсов:

+------------------+
|  Менеджер ресурсов|
+------------------+
|  Планировщик       |
|  Мастер приложения
|  Менеджер узлов     |
+------------------+

Менеджер ресурсов состоит из трех основных компонентов:

  1. Планировщик: Этот компонент отвечает за распределение ресурсов между различными запущенными приложениями в соответствии с заранее определенными политиками планирования.
  2. Менеджер приложений: Этот компонент отвечает за прием подачи заданий, переговоры о первом контейнере для запуска Мастера приложения и предоставление сервиса для перезапуска контейнера Мастера приложения в случае неудачи.
  3. Менеджер узлов: Этот компонент работает на каждом узле кластера и отвечает за запуск и мониторинг контейнеров, назначенных Планировщиком.

Для лучшего понимания функциональности Менеджера ресурсов рассмотрим простой пример.

Подайте пример задания 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 Менеджера ресурсов вы увидите различные разделы, которые предоставляют информацию о кластере, узлах и приложениях. Вот некоторые ключевые функции:

  1. Метрики кластера: Этот раздел отображает общие метрики кластера, такие как суммарные доступные ресурсы, количество запущенных приложений и использование ресурсов.
  2. Менеджеры узлов: Этот раздел перечисляет все активные Менеджеры узлов в кластере, а также их статус, доступные ресурсы и запущенные контейнеры.
  3. Запущенные приложения: Этот раздел показывает текущие запущенные приложения, их прогресс, использование ресурсов и другие подробности.
  4. История приложений: Этот раздел предоставляет историческое представление о завершенных приложениях, включая их логи и метрики.

Для демонстрации того, как управлять приложениями с использованием 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 и ее многофункциональных компонентов. Принимая принципы управления ресурсами и эффективного планирования, мы можем открыть новые возможности в области обработки данных и справляться с самыми сложными задачами обработки больших данных.