Применение планировщика в Hadoop

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

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

Введение

В древней земле Египта царский дворец Фараона стоял в виде великолепного свидетельства о могуществе и процветании царства. Однако под золотым покровом настаивала кризис. Великие амбары Фараона, полные богатств Нила, были в беспорядке. Жрецы, ответственные за управление распределением ресурсов, не могли справиться с требованиями народа.

Вступает Аменхотепи, умелый молодой жрец, которому поручено восстановить порядок в ресурсах царства. Его миссия заключалась в разработке системы, которая обеспечит справедливое и эффективное распределение драгоценных товаров, гарантируя, чтобы каждый гражданин получил свою долю.

Фараон, впечатлённый интеллектом и преданностью Аменхотепи, дал ему доступ к последнему технологическому чудовищу — системе Hadoop YARN (Yet Another Resource Negotiator). С помощью этой мощной herramы Аменхотепи приступил к изучению сложностей Applying Scheduler, ключевого компонента YARN, который помог бы ему достичь своей цели.


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/apply_scheduler("Applying Scheduler") hadoop/HadoopYARNGroup -.-> hadoop/resource_manager("Resource Manager") subgraph Lab Skills hadoop/yarn_setup -.-> lab-288957{{"Применение планировщика в Hadoop"}} hadoop/apply_scheduler -.-> lab-288957{{"Применение планировщика в Hadoop"}} hadoop/resource_manager -.-> lab-288957{{"Применение планировщика в Hadoop"}} end

Понимание планировщиков Hadoop YARN

В этом шаге мы рассмотрим различные политики планирования, доступные в Hadoop YARN, и их соответствующие сценарии использования.

Сначала нам нужно переключиться на пользователя hadoop:

su - hadoop

Hadoop YARN поддерживает две основных политики планирования: Fair Scheduler и Capacity Scheduler. Fair Scheduler旨在为多个用户和应用程序之间提供资源的公平共享,确保没有单个用户或应用程序垄断集群资源。另一方面,Capacity Scheduler允许基于预定义的容量限制进行分层队列管理和资源分配。

Чтобы отобразить текущую конфигурацию планировщика, используйте следующую команду:

yarn scheduler -getConf

Эта команда покажет вам текущий активный планировщик и его конфигурацию.

Настройка Fair Scheduler

В этом шаге мы настроим Fair Scheduler, чтобы обеспечить справедливое распределение ресурсов между гражданами царства.

Сначала создайте новый файл конфигурации под названием fair-scheduler.xml в /home/hadoop для Fair Scheduler:

<!-- /home/hadoop/fair-scheduler.xml -->
<?xml version="1.0"?>
<allocations>
  <defaultQueueSchedulingPolicy>fair</defaultQueueSchedulingPolicy>
  <queue name="root">
    <weight>1.0</weight>
    <queue name="citizens">
      <weight>1.0</weight>
      <minResources>1024 mb, 1 vcores</minResources>
    </queue>
    <queue name="priests">
      <weight>2.0</weight>
      <minResources>2048 mb, 2 vcores</minResources>
    </queue>
  </queue>
</allocations>

В этой конфигурации мы определили две очереди: citizens и priests. Очередь citizens имеет вес 1.0 и минимальное выделение ресурсов в 1024 МБ памяти и 1 vcore. Очередь priests имеет вес 2.0 и минимальное выделение ресурсов в 2048 МБ памяти и 2 vcores.

Далее примените новую конфигурацию, выполнив следующую команду:

yarn scheduler --setConf /home/hadoop/fair-scheduler.xml

Проверьте, активен ли теперь Fair Scheduler, выполнив команду yarn scheduler -getConf снова.

Настройка Capacity Scheduler

В этом шаге мы настроим Capacity Scheduler для распределения ресурсов на основе заранее определенных ограничений по пропускной способности.

Сначала создайте новый файл конфигурации под названием capacity-scheduler.xml в /home/hadoop/ для Capacity Scheduler:

<!-- /home/hadoop/capacity-scheduler.xml -->
<?xml version="1.0"?>
<configuration>
  <property>
    <name>yarn.scheduler.capacity.root.queues</name>
    <value>citizens,priests</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.citizens.capacity</name>
    <value>50</value>
  </property>
  <property>
    <name>yarn.scheduler.capacity.root.priests.capacity</name>
    <value>50</value>
  </property>
</configuration>

В этой конфигурации мы определили две очереди: citizens и priests. Каждая очередь получает 50% ресурсов кластера.

Далее примените новую конфигурацию, выполнив следующую команду:

yarn scheduler --setConf /home/hadoop/capacity-scheduler.xml

Проверьте, активен ли теперь Capacity Scheduler, выполнив команду yarn scheduler -getConf снова.

Резюме

В этом практическом занятии мы узнали, как настроить и применить различные политики планирования в Hadoop YARN для эффективного управления распределением ресурсов. Освоив Fair Scheduler и Capacity Scheduler, Аменхотепи может обеспечить справедливое распределение ресурсов между гражданами царства и придавать приоритет важным задачам, выполняемым жрецами.

С помощью этого практического опыта мы глубже поняли мощные возможности Hadoop YARN и его способность управлять ресурсами в сложной среде. Применив знания, полученные в этом практическом занятии, мы можем создать эффективные и справедливые системы управления ресурсами, адаптированные к конкретным потребностям нашей организации.