Configuração Básica do Hadoop YARN

HadoopBeginner
Pratique Agora

Introdução

Numa fábrica de robôs futurista, onde a tecnologia de ponta encontra a engenharia de precisão, você assume o papel de técnico de manutenção de robôs. Seu objetivo principal é garantir a alocação e o gerenciamento eficientes de recursos computacionais dentro da intrincada rede da fábrica. Essa rede alimenta as funções cognitivas dos robôs, permitindo que eles executem tarefas complexas com precisão e velocidade incomparáveis.

A infraestrutura computacional da fábrica se baseia no ecossistema Hadoop, especificamente no componente YARN (Yet Another Resource Negotiator). Seu objetivo é dominar a configuração básica do Hadoop YARN, permitindo que você distribua e gerencie perfeitamente as cargas de trabalho computacionais da fábrica em vários nós, garantindo o desempenho ideal e a utilização de recursos.

Explorar a Arquitetura YARN

Nesta etapa, exploraremos a arquitetura YARN e seus componentes-chave, lançando as bases para entender como ela gerencia e aloca recursos dentro do ecossistema Hadoop.

A arquitetura YARN consiste em dois componentes principais:

  1. ResourceManager (RM): O ResourceManager atua como a autoridade central que arbitra e aloca recursos disponíveis (CPU, memória, etc.) em todo o cluster. Ele consiste em dois componentes:

    • Scheduler (Agendador): Responsável por alocar recursos para as várias aplicações em execução com base em políticas de agendamento predefinidas.
    • ApplicationsManager (Gerenciador de Aplicações): Responsável por aceitar envios de tarefas, negociar o primeiro contêiner de recursos para executar o ApplicationMaster e fornecer o serviço para reiniciar o contêiner ApplicationMaster em caso de falha.
  2. NodeManager (NM): O NodeManager é executado em cada nó do cluster e é responsável por gerenciar os recursos do nó e monitorar os contêineres em execução nesse nó.

Para entender melhor a arquitetura YARN, vamos navegar até o diretório de configuração do Hadoop e examinar os arquivos de configuração relevantes.

Mas, primeiramente, precisamos mudar o usuário:

su - hadoop

Navegue até o diretório de configuração do Hadoop:

cd /home/hadoop/hadoop/etc/hadoop/

Abra o arquivo yarn-site.xml com a ferramenta vim:

<configuration>
  <property>
    <name>yarn.nodemanager.aux-services</name>
    <value>mapreduce_shuffle</value>
  </property>
  <property>
    <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
    <value>org.apache.hadoop.mapred.ShuffleHandler</value>
  </property>
</configuration>

Neste arquivo de configuração, podemos ver que o serviço auxiliar mapreduce_shuffle está habilitado para o NodeManager. Este serviço é responsável por gerenciar as operações de shuffle (embaralhamento) em tarefas MapReduce, garantindo a transferência eficiente de dados entre as fases de map e reduce.

Iniciar os Serviços YARN

Agora que exploramos a arquitetura YARN e sua configuração, vamos iniciar os serviços YARN em nosso cluster Hadoop.

Primeiramente, inicie os serviços YARN usando o seguinte comando:

start-yarn.sh

Este script iniciará os daemons ResourceManager e NodeManager nos nós apropriados do cluster.

Visualize o processo dos serviços YARN usando o seguinte comando:

jps

Os serviços NodeManager e ResourceManager devem estar visíveis na saída.

Você pode verificar o status dos serviços YARN usando o seguinte comando:

yarn node -list

Este comando exibirá uma lista dos NodeManagers ativos no cluster, juntamente com seu status e recursos disponíveis.

2024-03-17 19:27:30,108 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Total Nodes:1
         Node-Id      Node-State Node-Http-Address Number-of-Running-Containers
iZj6cdofomqja8ye7wk8kzZ:43689         RUNNING iZj6cdofomqja8ye7wk8kzZ:8042                            0

Na saída acima, podemos ver que há um NodeManager ativo em execução.

Submeter um Job YARN

Com os serviços YARN em execução, vamos submeter uma tarefa de exemplo para testar a alocação de recursos e as capacidades de agendamento do YARN.

Primeiro, prepare um arquivo de texto de entrada chamado input.txt no sistema de arquivos Hadoop que contém o conteúdo do texto a ser contado.

echo -e "Hello World\nHello Hadoop\nYARN is cool" > input.txt
hadoop fs -put input.txt /input.txt

Em seguida, o arquivo JAR para o programa de exemplo pode ser encontrado no diretório de instalação do Hadoop, geralmente localizado em $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar. Você pode usar este arquivo JAR para executar o programa Word Count (Contagem de Palavras).

yarn jar /home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.6.jar wordcount /input.txt /output

Este comando submeterá a tarefa MapReduce ao ResourceManager YARN, que alocará recursos e agendará a tarefa nos NodeManagers disponíveis.

Assim que a tarefa for concluída, você pode visualizar a saída no diretório /output:

hdfs dfs -cat /output/part-r-00000

Isso deve exibir a saída da contagem de palavras:

Hadoop 1
Hello 2
World 1
YARN 1
cool 1
is 1

Resumo

Neste laboratório, exploramos a arquitetura YARN e seus componentes-chave, aprendemos como configurar e iniciar os serviços YARN e submetemos uma tarefa MapReduce de exemplo ao cluster YARN. Ao concluir este laboratório, você adquiriu experiência prática com a configuração e operação básicas do Hadoop YARN, permitindo que você gerencie e aloque recursos de computação de forma eficiente em um ambiente distribuído.

O laboratório não apenas forneceu uma compreensão prática do YARN, mas também destacou a importância do gerenciamento de recursos e do agendamento em infraestruturas de computação modernas. Como técnico de manutenção de robôs em uma fábrica futurista, dominar essas habilidades o capacitará a otimizar o desempenho e a eficiência dos recursos de computação da fábrica, garantindo operações suaves e confiáveis para os robôs.