O que é Hadoop Yarn Architecture e seus componentes
Publicados: 2020-02-10Índice
Introdução ao Hadoop YARN
O YARN é o principal componente do Hadoop v2.0. O YARN ajuda a abrir o Hadoop, permitindo processar e executar dados para processamento em lote, processamento de fluxo, processamento interativo e processamento gráfico que são armazenados no HDFS. Dessa forma, ajuda a executar diferentes tipos de aplicativos distribuídos além do MapReduce.
Na arquitetura YARN, a camada de processamento é separada da camada de gerenciamento de recursos. Criar uma divisão entre o gerenciador de aplicativos e o gerenciador de recursos era responsabilidade do rastreador de tarefas na versão do Hadoop 1.0. O YARN permite que os dados armazenados no HDFS (Hadoop Distributed File System) sejam processados e executados por vários mecanismos de processamento de dados, como processamento em lote, processamento de fluxo, processamento interativo, processamento de gráficos e muito mais. Assim, a eficiência do sistema é aumentada com o uso do YARN. O processamento do pedido é agendado no YARN através de seus diferentes componentes. Muitos tipos diferentes de recursos também são progressivamente alocados para utilização ideal. O YARN ajuda muito no uso adequado dos recursos disponíveis, o que é muito necessário para o processamento de um grande volume de dados.
Por que FIAR?
MapReduce executa funções de Gerenciamento e Processamento de Recursos. O Hadoop v1.0 também é conhecido como MapReduce Versão 1 (MRV1). Havia apenas um único mestre para Job Tracker.
Você não vai acreditar como esse programa mudou a carreira dos alunosNa versão anterior do Hadoop, o Hadoop versão 1.0, que também é conhecido como MapReduce versão 1 (MRV1), é usado para executar a tarefa de gerenciamento de processos e recursos por si só. Tem um módulo de acompanhamento de trabalhos que é responsável por tudo. Portanto, é o único mestre que aloca recursos para aplicações, realiza escalonamento por demanda e também monitora as tarefas de processamento no sistema. O Hadoop versão 1.0 reduz tarefas e atribui mapas em vários subprocessos que são chamados de rastreadores de tarefas. O Task Tracker também relata o andamento dos processos de forma periódica. Mas a questão principal não é essa, o problema é esse projeto de um único mestre para todos, resultando em problema de gargalo. Além disso, a utilização de recursos computacionais foi ineficiente. Assim, a escalabilidade tornou-se um problema com esta versão do Hadoop. Mas pelo lado positivo, esse problema foi resolvido pelo YARN, um componente central vital em seu sucessor Hadoop versão 2.0, que foi introduzido no ano de 2012 pelo Yahoo e Hortonworks. A ideia básica por trás desse alívio é separar o MapReduce do Gerenciamento de Recursos e do agendamento de tarefas em vez de um único mestre. Assim, o YARN agora é responsável pelo agendamento de tarefas e gerenciamento de recursos.
No Hadoop 2.0, o conceito de Application Master e Resource Manager foi introduzido pelo YARN. Em todo o cluster do Hadoop, a utilização de recursos é monitorada pelo Resource Manager.
Existem algumas características do YARN por causa das quais ele ficou muito famoso, que são:

- Multilocação: o YARN permitiu o acesso a vários mecanismos de processamento de dados, como mecanismo de processamento em lote, mecanismo de processamento de fluxo, mecanismo de processamento interativo, mecanismo de processamento gráfico e muito mais. Isso deu o benefício da multilocação para a empresa.
- Utilização do cluster: os clusters são utilizados de maneira otimizada porque os clusters são usados dinamicamente no Hadoop com a ajuda do YARN.
- Compatibilidade : O YARN também é compatível com a primeira versão do Hadoop, ou seja, Hadoop 1.0, porque usa os aplicativos de redução de mapas existentes. Portanto, o YARN também pode ser usado com o Hadoop 1.0.
- Escalabilidade : Milhares de clusters e nós são permitidos pelo agendador no Resource Manager do YARN para serem gerenciados e estendidos pelo Hadoop.
Componentes do YARN
- Recipiente:
No Container, pode-se encontrar recursos físicos como um disco em um único nó, núcleos de CPU, RAM. O Container Launch Context (CLC) é usado para invocar contêineres. Dados sobre as dependências, tokens de segurança, variáveis de ambiente que são mantidos como um registro conhecido como Container Launch Context (CLC).
- Em um host específico, um aplicativo só pode usar a memória especificada da CPU e da Memória. Essa quantidade especificada de memória só pode ser usada após a permissão ser concedida pelo Container.
- O Container Launch Context é usado para gerenciar contêineres YARN. Também é chamado de Container LifeCycle (CLC). Os comandos necessários para a criação do processo são armazenados neste registro. Ele também salva a carga útil para serviços do Node Manager, tokens de segurança, dependências, mapa de variáveis de ambiente.
- Mestre do aplicativo:
Em uma estrutura, quando um único trabalho é enviado, ele é chamado de aplicativo. Monitorar o progresso do aplicativo, rastreamento de status do aplicativo, negociação de recursos com o gerenciador de recursos é de responsabilidade do gerenciador de aplicativos. Todo o requisito de execução de uma aplicação é feito através do envio do Container Launch Context (CLC). O mestre do aplicativo publica o Contexto de Lançamento do contêiner (CLC) solicitando o Contêiner do gerenciador de nós. De tempos em tempos, o gerenciador de recursos recebe um relatório de funcionamento após o início do aplicativo.

- Gerenciador de nós:
O gerenciador de nós cuida de nós individuais no cluster Hadoop e também gerencia os contêineres relacionados a cada nó específico. Ele é registrado com o Resource Manager e envia o status de integridade de cada nó para o Resource Manager, informando se o processo do nó terminou de trabalhar com o recurso. Como seu objetivo principal é gerenciar cada contêiner de nó específico que é designado pelo gerenciador de recursos. O gerenciador de nós também cria um processo de contêiner quando solicitado pelo mestre de aplicativos. Quando o mestre do aplicativo envia e solicita o Container anexado do gerenciador de nós por um CLC (Container Launch Context) que inclui tudo o que um aplicativo precisa para executar. Em seguida, o gerenciador de nós cria o contêiner de processo solicitado e o executa. O gerenciador de nós também é responsável por monitorar o uso de recursos por Container individual e reportá-lo ao gerenciador de recursos. Assim, o gerenciador de nós e o gerenciador de recursos colaboram para se comunicar entre os nós e gerenciar o uso de recursos por cada nó no cluster. Ele também pode matar contêineres se orientado pelo gerente de recursos. Finalmente, os gerenciadores de nós registram tudo pelo sistema de gerenciamento de log nele.
Um nó específico é cuidado pelo Node Manager. O Node Manager gerencia o fluxo de trabalho e o aplicativo do nó. O gerenciamento de log é executado e o Node Manager monitora o uso de recursos. O gerenciador de recursos fornece instruções para eliminar um contêiner para o Node Manager. O mestre do aplicativo solicita que o gerenciador de nós inicie o processo do contêiner. A criação de um processo de container é de responsabilidade do Node Manager.
- Gerente de Recursos:
O gerenciamento de recursos e a atribuição de todos os aplicativos são de responsabilidade do Resource Manager e é o daemon mestre do YARN. Os pedidos recebidos pelo gerenciador de recursos são encaminhados ao gerenciador de nó correspondente. De acordo com o aplicativo, os recursos são alocados pelo gerenciador de recursos para conclusão.
- A utilização do Cluster é otimizada, como manter o uso de todos os recursos ativos contra diferentes tipos de limitações, como SLAs, justiça e garantias de capacidade.
- O Resource Manager faz a alocação dos recursos disponíveis.
- O Resource Manager arbitra os recursos de cluster.
- O processamento real de solicitações ocorre em nós e os gerenciadores de nós o gerenciam. Sempre que algum pedido de processamento é recebido, ele transfere os pedidos em partes para seus gerenciadores de nós correspondentes.
- O Resource Manager é a autoridade máxima para a alocação de recursos.
Existem dois componentes principais do Resource Manager, que são: –

- Gerente de aplicação -
O gerenciador de aplicativos é responsável por gerenciar um conjunto de tarefas ou aplicativos enviados. Ele primeiro verifica e valida as especificações do aplicativo enviado e pode rejeitá-lo se não houver recursos suficientes disponíveis. Ele também garante que nenhum outro aplicativo exista com o mesmo ID que já foi enviado e que possa ser causado por um cliente incorreto ou malicioso. Em seguida, ele encaminha o aplicativo enviado após a validação para o agendador. Por fim, também observa os estados dos aplicativos e gerencia os aplicativos concluídos para economizar um pouco da memória do Resource Manager. O gerenciador de aplicativos mantém um cache de aplicativos concluídos e remove aplicativos antigos e concluídos para acomodar espaço para aplicativos recém-enviados.
- Agendador -
Com base na disponibilidade de recursos e alocação de aplicativos, o Agendador agenda as tarefas. Não há outra tarefa executada pelo agendador como não reiniciar o trabalho após falha, rastreamento ou monitoramento de tarefas. Os diferentes tipos de plug-ins do agendador são Fair Scheduler e Capacity Scheduler, que são suportados pelo agendador YARN para a partição de recursos de cluster.
Etapas do fluxo de trabalho do aplicativo no Hadoop YARN
Um pedido é enviado pelo cliente.
- O Application Manager é iniciado pela alocação do Container pelo Resource Manager.
- O Resource Manager e o Application Manager registram-se entre si.
- O Application Manager faz a negociação do Container para o Resource Manager.
- O Node Manager inicia o Container após ser notificado pelo Application Manager.
- A execução do código do Aplicativo é feita no Container.
- O Application Manager ou Resource Manager monitora o status do aplicativo após ser contatado pelo cliente.
- O cancelamento do registro do Application Manager é feito com o Resource Manager após a conclusão do processo.
Empacotando
Se você estiver interessado em saber mais sobre Big Data, confira nosso programa PG Diploma in Software Development Specialization in Big Data, projetado para profissionais que trabalham e fornece mais de 7 estudos de caso e projetos, abrange 14 linguagens e ferramentas de programação, práticas práticas workshops, mais de 400 horas de aprendizado rigoroso e assistência para colocação de emprego com as principais empresas.
Aprenda cursos de desenvolvimento de software online das melhores universidades do mundo. Ganhe Programas PG Executivos, Programas de Certificado Avançado ou Programas de Mestrado para acelerar sua carreira.