Tutorial Hadoop YARN - Aprenda os fundamentos da arquitetura YARN



Este blog se concentra no Apache Hadoop YARN, que foi introduzido no Hadoop versão 2.0 para gerenciamento de recursos e agendamento de tarefas. Explica a arquitetura YARN com seus componentes e as funções desempenhadas por cada um deles. Ele descreve o envio do aplicativo e o fluxo de trabalho no Apache Hadoop YARN.

O Hadoop YARN une a unidade de armazenamento do Hadoop, ou seja, HDFS (Hadoop Distributed File System) com as várias ferramentas de processamento. Para aqueles de vocês que são completamente novos neste tópico, YARN significa “ Y e PARA Ela não R esource N egotiator ”. Eu também sugiro que você leia nosso e antes de prosseguir com o aprendizado do Apache Hadoop YARN. Estarei explicando os tópicos a seguir aqui para ter certeza de que, ao final deste blog, seu entendimento do Hadoop YARN esteja claro.

Por que YARN?

No Hadoop versão 1.0, também conhecido como MRV1 (MapReduce versão 1), o MapReduce executava funções de processamento e gerenciamento de recursos. Consistia em um Job Tracker que era o único mestre. O Job Tracker alocou os recursos, executou o agendamento e monitorou os trabalhos de processamento. Ele atribuiu tarefas de mapa e redução em uma série de processos subordinados chamados de Rastreadores de Tarefas. Os rastreadores de tarefas relatavam periodicamente seu progresso ao rastreador de trabalhos.





MapReduce versão 1.0 - Hadoop YARN - Edureka

Este design resultou em gargalo de escalabilidade devido a um único Job Tracker.A IBM mencionou em seu artigo que, de acordo com o Yahoo !, os limites práticos de tal projeto são alcançados com um cluster de 5.000 nós e 40.000 tarefas sendo executadas simultaneamente.Além dessa limitação, a utilização de recursos computacionais é ineficiente no MRV1. Além disso, a estrutura do Hadoop ficou limitada apenas ao paradigma de processamento MapReduce.



Para superar todos esses problemas, o YARN foi introduzido no Hadoop versão 2.0 no ano de 2012 pelo Yahoo e Hortonworks. A ideia básica por trás do YARN é aliviar o MapReduce assumindo a responsabilidade de Gerenciamento de Recursos e Agendamento de Tarefas. O YARN começou a dar ao Hadoop a capacidade de executar tarefas não MapReduce dentro da estrutura do Hadoop.

Você também pode assistir ao vídeo abaixo onde nosso especialista está discutindo os conceitos do YARN e sua arquitetura em detalhes.

Tutorial do Hadoop Yarn | Arquitetura de fios Hadoop | Edureka

Com a introdução do YARN, o foi completamente revolucionado. Tornou-se muito mais flexível, eficiente e escalonável. Quando o Yahoo entrou no ar com o YARN no primeiro trimestre de 2013, ele ajudou a empresa a reduzir o tamanho de seu cluster Hadoop de 40.000 nós para 32.000 nós. Mas o número de empregos dobrou para 26 milhões por mês.



Introdução ao Hadoop YARN

Agora que eu esclareci você sobre a necessidade do YARN, deixe-me apresentá-lo ao componente principal do Hadoop v2.0, FIO . O YARN permite diferentes métodos de processamento de dados, como processamento de gráfico, processamento interativo, processamento de fluxo, bem como processamento em lote, para executar e processar dados armazenados no HDFS. Portanto, o YARN abre o Hadoop para outros tipos de aplicativos distribuídos além do MapReduce.

O YARN permitiu que os usuários executassem operações conforme a necessidade, usando uma variedade de ferramentas como para processamento em tempo real, Colmeia para SQL, HBase para NoSQL e outros.

Além do gerenciamento de recursos, o YARN também realiza o agendamento de tarefas. O YARN executa todas as suas atividades de processamento alocando recursos e agendando tarefas. A arquitetura Apache Hadoop YARN consiste nos seguintes componentes principais:

  1. Gerente de Recursos : É executado em um daemon mestre e gerencia a alocação de recursos no cluster.
  2. Gerente de Nó: Eles são executados nos daemons escravos e são responsáveis ​​pela execução de uma tarefa em cada nó de dados.
  3. Mestre de aplicativos: Gerencia o ciclo de vida do trabalho do usuário e as necessidades de recursos de aplicativos individuais. Ele trabalha junto com o Node Manager e monitora a execução das tarefas.
  4. Recipiente: Pacote de recursos, incluindo RAM, CPU, rede, HDD etc em um único nó.

Componentes do YARN

Você pode considerar o YARN como o cérebro do seu ecossistema Hadoop. A imagem abaixo representa a arquitetura YARN.

o primeiro componente da arquitetura YARN é,

Gerente de Recursos

  • É a autoridade máxima na alocação de recursos .
  • Ao receber os pedidos de processamento, ele passa partes dos pedidos para os gerenciadores de nós correspondentes, onde o processamento real ocorre.
  • É o árbitro dos recursos do cluster e decide a alocação dos recursos disponíveis para aplicativos concorrentes.
  • Otimiza a utilização do cluster, mantendo todos os recursos em uso o tempo todo contra várias restrições, como garantias de capacidade, justiça e SLAs.
  • Possui dois componentes principais:a) Schedulerb)Gerente de aplicação

a) Scheduler

invocação de método remoto em java
  • O planejador é responsável por alocar recursos para os vários aplicativos em execução sujeitos a restrições de capacidades, filas, etc.
  • Ele é chamado de planejador puro no ResourceManager, o que significa que ele não executa nenhum monitoramento ou rastreamento de status para os aplicativos.
  • Se houver uma falha de aplicativo ou hardware, o Scheduler não garante o reinício das tarefas com falha.
  • Executa o agendamento com base nos requisitos de recursos dos aplicativos.
  • Ele possui um plug-in de política conectável, que é responsável por particionar os recursos do cluster entre os vários aplicativos. Existem dois desses plug-ins: Agendador de capacidade e Fair Scheduler , que atualmente são usados ​​como Agendadores no ResourceManager.

b) Gerente de Aplicativos

  • É responsável por aceitar inscrições de trabalhos.
  • Negocia o primeiro container do Resource Manager para executar o Application Master específico.
  • Gerencia a execução do Application Masters em um cluster e fornece serviço para reiniciar o contêiner do Application Master em caso de falha.

Vindo para o segundo componente qual é:

Node Manager

  • Ele cuida de nós individuais em um cluster Hadoop egerencia os trabalhos do usuário e o fluxo de trabalho em um determinado nó.
  • Ele se registra no Resource Manager e envia pulsações com o status de integridade do nó.
  • Seu objetivo principal é gerenciar os containers de aplicativos atribuídos a ele pelo gerenciador de recursos.
  • Ele se mantém atualizado com o Gerenciador de recursos.
  • O Application Master solicita o contêiner atribuído do Node Manager enviando a ele um Container Launch Context (CLC) que inclui tudo o que o aplicativo precisa para ser executado. O Node Manager cria o processo de contêiner solicitado e o inicia.
  • Monitora o uso de recursos (memória, CPU) de contêineres individuais.
  • Executa o gerenciamento de log.
  • Ele também elimina o contêiner conforme orientado pelo Gerenciador de recursos.

o terceiro componente do Apache Hadoop YARN é,

Mestre de Aplicação
  • Um aplicativo é um único trabalho enviado ao framework. Cada aplicativo possui um Application Master exclusivo associado a ele, que é uma entidade específica da estrutura.
  • É o processo que coordena a execução de um aplicativo no cluster e também gerencia falhas.
  • Sua tarefa é negociar recursos do Resource Manager e trabalhar com o Node Manager para executar e monitorar as tarefas do componente.
  • Ele é responsável por negociar contêineres de recursos apropriados do ResourceManager, rastreando seu status e monitorando o progresso.
  • Uma vez iniciado, ele envia periodicamente pulsações ao Gerenciador de recursos para confirmar sua integridade e atualizar o registro de suas demandas de recursos.

o quarto componente é:

Recipiente
  • É uma coleção de recursos físicos, como RAM, núcleos de CPU e discos em um único nó.
  • Os contêineres YARN são gerenciados por um contexto de inicialização do contêiner que é o ciclo de vida do contêiner (CLC). Este registro contém um mapa de variáveis ​​de ambiente, dependências armazenadas em um armazenamento acessível remotamente, tokens de segurança, carga útil para serviços do Node Manager e o comando necessário para criar o processo.
  • Ele concede direitos a um aplicativo para usar uma quantidade específica de recursos (memória, CPU etc.) em um host específico.

Envio de aplicativo no YARN

Consulte a imagem e dê uma olhada nas etapas envolvidas no envio de inscrição do Hadoop YARN:

1) Envie o trabalho

usando r para aprendizado de máquina

2)Obtenha o ID do aplicativo

3) Contexto de envio do aplicativo

4 a) Iniciar contêinerLançamento

b) Inicie o aplicativo mestre

5) Alocar recursos

6 a) Container

b) Lançamento

7) Executar

Fluxo de trabalho do aplicativo no Hadoop YARN

Consulte a imagem fornecida e veja as seguintes etapas envolvidas no fluxo de trabalho do aplicativo do Apache Hadoop YARN:

  1. O cliente envia uma inscrição
  2. O Resource Manager aloca um container para iniciar o Application Manager
  3. O Application Manager se registra no Resource Manager
  4. O Application Manager pede os containers do Resource Manager
  5. O Application Manager notifica o Node Manager para iniciar os contêineres
  6. O código do aplicativo é executado no contêiner
  7. O cliente entra em contato com o Resource Manager / Application Manager para monitorar o status do aplicativo
  8. Application Manager cancela o registro no Resource Manager

Agora que você conhece o Apache Hadoop YARN, confira o pela Edureka, uma empresa de aprendizagem online confiável com uma rede de mais de 250.000 alunos satisfeitos espalhados por todo o mundo. O curso Edureka Big Data Hadoop Certification Training ajuda os alunos a se tornarem especialistas em HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume e Sqoop usando casos de uso em tempo real no varejo, mídia social, aviação, turismo, domínio financeiro.

Tem alguma questão para nós? Mencione isso na seção de comentários e entraremos em contato com você.