Datopia com Hadoop Yarn

HadoopBeginner
Pratique Agora

Introdução

Numa terra fantástica chamada Datopia, onde a informação flui como rios de puro conhecimento, vivia um ser curioso chamado Datina. O único propósito de Datina era compreender os intrincados funcionamentos do reino dos dados e aproveitar o seu potencial. Um dia, Datina deparou-se com uma força misteriosa conhecida como Hadoop, uma ferramenta poderosa capaz de processar vastas quantidades de dados. No entanto, para libertar totalmente as suas capacidades, Datina precisava dominar a arte de executar comandos Yarn e manipular ficheiros jar.

O objetivo deste laboratório é guiar Datina através do processo de utilização de comandos Yarn e ficheiros jar dentro do ecossistema Hadoop. Ao completar este laboratório, Datina irá adquirir as habilidades necessárias para gerir e executar aplicações de forma eficiente, desbloqueando o verdadeiro potencial do Hadoop na terra de Datopia.

Explorando o Ambiente Hadoop

Neste passo, vamos familiarizar-nos com o ambiente Hadoop e garantir que todos os componentes necessários estão devidamente configurados.

Primeiro, para mudar para o utilizador hadoop:

su - hadoop

Em seguida, verificando a versão do Hadoop:

hadoop version

Deverá ver uma saída semelhante à seguinte:

Hadoop 3.3.6
...

Listando Arquivos Jar Disponíveis

Neste passo, vamos aprender como listar os ficheiros jar disponíveis no ambiente Hadoop. Estes ficheiros jar contêm aplicações e utilitários pré-construídos que podem ser executados usando comandos Yarn.

ls $HADOOP_HOME/share/hadoop/mapreduce/*.jar

A saída irá exibir uma lista de ficheiros jar localizados no diretório $HADOOP_HOME/share/hadoop/mapreduce. Estes ficheiros jar podem ser usados com comandos Yarn para executar várias aplicações e utilitários.

/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-app-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-common-3.3.6.jar
/home/hadoop/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-client-core-3.3.6.jar
...

Executando um Arquivo Jar com Yarn

Neste passo, vamos aprender como executar um ficheiro jar usando o comando yarn jar. Usaremos o ficheiro jar hadoop-mapreduce-examples como exemplo.

Agora, execute o exemplo WordCount do jar hadoop-mapreduce-examples:

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

Dica: Pode ler o conteúdo do ficheiro com hadoop fs -cat /home/hadoop/input/*

O conteúdo do ficheiro de entrada:

hello world
hello labex
hello Hadoop
hello Java

No comando acima, especificamos o ficheiro jar hadoop-mapreduce-examples-3.3.6.jar, a aplicação a ser executada wordcount e os caminhos de entrada e saída /home/hadoop/input e /home/hadoop/output, respetivamente.

Após executar o comando, deverá ver uma saída semelhante à seguinte:

hadoop:~/ $ hadoop fs -cat /home/hadoop/output/*                     [19:54:17]
Hadoop 1
Java 1
hello 4
labex 1
world 1

Monitorando Aplicações Yarn

Neste passo, vamos aprender como monitorizar e gerir aplicações Yarn usando vários comandos.

Listar aplicações Yarn em execução:

yarn application -list

Exemplo de saída no terminal:

UBMITTED, ACCEPTED, RUNNING, FINISHED, FAILED, KILLED] and tags: []):1
                Application-Id     Application-Name     Application-Type       User      Queue              State        Final-State        Progress                        Tracking-URL
application_1711070937750_0001           word count            MAPREDUCE     hadoop    default           FINISHED          SUCCEEDED            100% http://iZj6cdxwclh8pms0k1vyyhZ:19888/jobhistory/job/job_1711070937750_0001

Obter o estado da aplicação

yarn application -status <application_id>

Exemplo de saída no terminal:

hadoop:~/ $ yarn application -status application_1711070937750_0001   [9:31:46]
2024-03-22 09:33:12,186 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
2024-03-22 09:33:12,521 INFO conf.Configuration: resource-types.xml not found
2024-03-22 09:33:12,522 INFO resource.ResourceUtils: Unable to find 'resource-types.xml'.
Application Report :
 Application-Id : application_1711070937750_0001
 Application-Name : word count
 Application-Type : MAPREDUCE
 User : hadoop
 Queue : default
 Application Priority : 0
 Start-Time : 1711071042168
 Finish-Time : 1711071057334

Parar uma aplicação em execução

yarn application -kill <application_id>

Exemplo de saída no terminal:

hadoop:~/ $ yarn application -kill application_1711070937750_0001     [9:33:14]
2024-03-22 09:34:45,075 INFO client.DefaultNoHARMFailoverProxyProvider: Connecting to ResourceManager at /0.0.0.0:8032
Application application_1711070937750_0001 has already finished

Dicas: pode listar todas as aplicações com yarn application -list -appStates ALL

O comando yarn application permite listar, monitorizar e gerir aplicações Yarn. Pode obter o estado da aplicação e até parar uma aplicação em execução usando os subcomandos respetivos.

Resumo

Neste laboratório, embarcámos numa jornada pela terra de Datopia, onde Datina, um ser curioso, procurou desbloquear o verdadeiro potencial dos comandos Yarn e ficheiros jar do Hadoop. Ao completar este laboratório, Datina adquiriu valiosas competências na listagem de ficheiros jar disponíveis, na execução de aplicações usando o comando yarn jar e na monitorização e gestão de aplicações Yarn.

Através de exercícios práticos, Datina aprendeu a navegar no ambiente Hadoop, a executar aplicações pré-construídas como WordCount e a monitorizar aplicações em execução usando vários comandos Yarn. Estas competências não só capacitam Datina a aproveitar o poder do Hadoop, mas também estabelecem as bases para uma exploração e domínio mais aprofundados do reino dos dados.

Este laboratório desafiou-me a criar uma experiência de aprendizagem envolvente e informativa, combinando conceitos técnicos com uma narrativa fantasiosa. Ao projetar um mundo fictício e uma personagem com a qual é fácil relacionar-se, pretendi tornar o processo de aprendizagem mais agradável e acessível, especialmente para iniciantes. Além disso, concentrei-me em fornecer instruções claras, trechos de código de exemplo e explicações detalhadas para garantir uma jornada de aprendizagem tranquila.