Introdução
Na antiga terra do Egito, o palácio do Faraó erguia-se como um magnífico testemunho do poder e da prosperidade do reino. No entanto, sob a superfície dourada, uma crise estava a fermentar. Os vastos celeiros do Faraó, repletos com a fartura do Nilo, estavam em desordem. Os sacerdotes, responsáveis pela gestão da distribuição de recursos, lutavam para acompanhar as exigências do povo.
Entra Amenhotep, um jovem sacerdote brilhante encarregado de restaurar a ordem nos recursos do reino. Sua missão era desenvolver um sistema que garantisse a alocação justa e eficiente dos bens preciosos, assegurando que cada cidadão recebesse sua parte devida.
O Faraó, impressionado com o intelecto e a dedicação de Amenhotep, concedeu-lhe acesso à mais recente maravilha tecnológica – o sistema Hadoop YARN (Yet Another Resource Negotiator). Com esta poderosa ferramenta à sua disposição, Amenhotep partiu para aprender as complexidades do Applying Scheduler, um componente chave do YARN que o ajudaria a alcançar seu objetivo.
Entendendo os Schedulers do Hadoop YARN
Nesta etapa, exploraremos as diferentes políticas de agendamento disponíveis no Hadoop YARN e seus respectivos casos de uso.
Primeiramente, precisamos mudar o usuário para o usuário Hadoop:
su - hadoop
O Hadoop YARN suporta duas políticas de agendamento principais: o Fair Scheduler e o Capacity Scheduler. O Fair Scheduler visa fornecer uma partilha justa de recursos entre múltiplos usuários e aplicações, garantindo que nenhum usuário ou aplicação monopolize os recursos do cluster. Por outro lado, o Capacity Scheduler permite o gerenciamento hierárquico de filas e a alocação de recursos com base em limites de capacidade predefinidos.
Para exibir a configuração atual do scheduler, use o seguinte comando:
yarn scheduler -getConf
Este comando mostrará o scheduler atualmente ativo e sua configuração.
Configurando o Fair Scheduler
Nesta etapa, configuraremos o Fair Scheduler para garantir uma distribuição justa de recursos entre os cidadãos do reino.
Primeiramente, crie um novo arquivo de configuração chamado fair-scheduler.xml em /home/hadoop para o 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>
Nesta configuração, definimos duas filas: citizens e priests. A fila citizens tem um peso de 1.0 e uma alocação mínima de recursos de 1024 MB de memória e 1 vcore. A fila priests tem um peso de 2.0 e uma alocação mínima de recursos de 2048 MB de memória e 2 vcores.
Em seguida, aplique a nova configuração executando o seguinte comando:
yarn scheduler --setConf /home/hadoop/fair-scheduler.xml
Verifique se o Fair Scheduler está agora ativo executando o comando yarn scheduler -getConf novamente.
Configurando o Capacity Scheduler
Nesta etapa, configuraremos o Capacity Scheduler para alocar recursos com base em limites de capacidade predefinidos.
Primeiramente, crie um novo arquivo de configuração chamado capacity-scheduler.xml em /home/hadoop/ para o 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>
Nesta configuração, definimos duas filas: citizens e priests. Cada fila recebe 50% dos recursos do cluster.
Em seguida, aplique a nova configuração executando o seguinte comando:
yarn scheduler --setConf /home/hadoop/capacity-scheduler.xml
Verifique se o Capacity Scheduler está agora ativo executando o comando yarn scheduler -getConf novamente.
Resumo
Neste laboratório, aprendemos como configurar e aplicar diferentes políticas de agendamento no Hadoop YARN para gerenciar a alocação de recursos de forma eficaz. Ao dominar o Fair Scheduler e o Capacity Scheduler, Amenhotep pode garantir a distribuição justa de recursos entre os cidadãos do reino e priorizar as tarefas críticas realizadas pelos sacerdotes.
Através desta experiência prática, adquirimos uma compreensão mais profunda das poderosas capacidades do Hadoop YARN e sua capacidade de gerenciar recursos em um ambiente complexo. Ao aplicar o conhecimento adquirido neste laboratório, podemos construir sistemas eficientes e justos de gerenciamento de recursos, adaptados às necessidades específicas de nossa organização.



