minhas informações de contato
Correspondência[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Diretório de artigos
Principais princípios arquitetônicos do Yarn no Hadoop
3. Processo de execução da tarefa Yarn
4. Características e cenários de uso dos três agendadores de recursos do Yarn
Apache Hadoop Yarn (Yet Another Reasource Negotiator, outro coordenador de recursos) é um gerenciador de recursos usado após a versão Hadoop2.x, que pode fornecer uma plataforma unificada de gerenciamento de recursos para aplicativos de camada superior.
Yarn é composto principalmente por ResourceManager, NodeManager, ApplicationMaster e Container.
Gerente de Recursos
ResourceManager é o gerente central no cluster Yarn e é responsável pela alocação de recursos e agendamento de todo o cluster. ResourceManager é responsável por monitorar o status dos nós do NodeManager, reunir recursos do cluster, processar solicitações de recursos para tarefas enviadas pelo Cliente e iniciar e monitorar o ApplicationMaster para cada Aplicativo.
Gerenciador de nós
NodeManager é responsável por gerenciar os recursos (como memória, CPU, etc.) em cada nó e reportar ao ResourceManager. Quando o ResourceManager atribui um container (Container) ao NodeManager, o NodeManager é responsável por iniciar o container e monitorar o funcionamento do container. Além disso, o NodeManager também recebe o comando ApplicationMaster para iniciar o container (Container) para cada Aplicação.
Mestre de aplicação
Cada aplicativo em execução no Yarn iniciará um ApplicationMaster correspondente, que é responsável por solicitar recursos com o ResourceManager e gerenciar tarefas do aplicativo. ApplicationMaster é essencialmente um contêiner. O agendamento de recursos é executado pelo ResourceManager e iniciado pelo NodeManager. Após o ApplicationMaster ser iniciado, ele solicitará recursos do ResourceManager para executar o aplicativo. inicialização do contêiner e gerenciar os recursos em execução na tarefa do contêiner.
Recipiente
Container Container é a unidade básica de execução do Yarn, usada para executar tarefas do aplicativo. É um ambiente virtual que contém código do aplicativo, dependências e recursos necessários para operação (memória, CPU, disco, rede). Cada contêiner é atribuído ao ApplicationMaster pelo ResourceManager e iniciado e gerenciado no nó correspondente pelo NodeManager. O uso de recursos do contêiner é monitorado pelo NodeManager e reportado ao ResourceManager quando necessário.
O núcleo do Yarn é separar as funções de gerenciamento de recursos e agendamento de tarefas do JobTracker no MR1, que são implementadas pelos processos ResourceManager e ApplicationMaster, respectivamente. O ResourceManager é responsável pelo gerenciamento de recursos e agendamento de todo o cluster do ApplicationMaster; agendamento de tarefas de aplicativos, monitoramento de tarefas e tolerância a falhas.
Quando o cliente envia uma tarefa de MR para o Yarn, os recursos da tarefa de MR (divisão, configuração de recursos, informações do pacote Jar) serão primeiro carregados no HDFS.
O cliente se aplica ao ResourceManager para iniciar o ApplicationMaster.
O ResourceManager selecionará um nó NodeManager que não esteja relativamente ocupado e notificará o nó para iniciar o ApplicationMaster (Container).
Depois que o ApplicationMaster for iniciado, ele fará download das informações de recursos da tarefa MR do HDFS para o local e, em seguida, solicitará recursos do ResourceManager para iniciar a tarefa MR.
ResourceManager retorna a lista de recursos para ApplicationMaster.
O ApplicationMaster então notifica o NodeManager correspondente para iniciar o Container.
Após o Container ser iniciado, ele será registrado inversamente no ApplicationMaster.
ApplicationMaster envia a tarefa para o contêiner ser executado e a tarefa executa a lógica de negócios do código que escrevemos.
Agendador FIFO (Programador First-In-Fist-Out) , o agendador mais simples do Yarn. O FIFO Scheduler colocará os aplicativos enviados em uma fila de primeiro a entrar, primeiro a sair, na ordem de envio. Ao alocar recursos, os recursos serão alocados primeiro para o aplicativo no topo da fila e, em seguida, alocarão recursos para o próximo aplicativo após o. os requisitos de recursos do aplicativo principal são atendidos. Um aplicativo aloca recursos e assim por diante. Quando esse tipo de agendador agenda recursos, é possível que uma aplicação com grandes requisitos de recursos ocupe todos os recursos do cluster, fazendo com que outras aplicações sejam bloqueadas.
Agendador de Capacidade (Agendador de Capacidade) É o agendador de recursos padrão configurado no Yarn, permitindo que vários locatários compartilhem com segurança um cluster grande. O Agendador de capacidade suporta a configuração de várias filas de recursos. Você pode especificar as proporções mínima e máxima de recursos utilizáveis para cada fila de recursos. Ao alocar recursos, os recursos ociosos serão priorizados para aquele com a menor proporção de "recursos reais/recursos orçamentários". cada fila de recursos adota a estratégia de agendamento FIFO internamente.
Agendador de feirasÉ um método de escalonamento de recursos que aloca recursos do Yarn de maneira justa para cada aplicativo. Esse método de escalonamento permite que todos os aplicativos obtenham compartilhamentos iguais de recursos ao longo do tempo.
A diferença entre os agendadores de recursos FIFO, Capacidade e Fair no Yarn é a seguinte:
Agendador de recursos Yarn | Características | Cena aplicável |
Agendador FIFO | 1. Simples e fácil de entender, sem necessidade de configuração adicional. 2. As inscrições são executadas na ordem em que são enviadas (primeiro a entrar, primeiro a sair). 3. Não adequado para clusters compartilhados, cada aplicação deve aguardar até sua vez de ser executada. | Clusters não compartilhados, cenários que não possuem requisitos elevados na ordem de execução das tarefas. Geralmente não usado em ambientes de produção. |
Agendador de capacidade (usado por padrão no Yarn de código aberto) | 1. Permita que várias organizações compartilhem recursos de cluster e cada organização tenha uma fila dedicada. 2. Apoie a divisão hierárquica de filas e configuração flexível de recursos de fila. 3. Você pode limitar a capacidade máxima da fila e aliviar a competição por recursos. | Cenários de cluster compartilhado, onde várias organizações ou equipes compartilham os mesmos recursos de cluster. |
Agendador justo (usado pelo CDH por padrão) | 1. Alocar recursos de maneira justa para todos os aplicativos em execução e apoiar o compartilhamento justo de recursos entre várias filas. 2. Apoiar a criação dinâmica de filas e determinar a colocação de aplicativos por meio de um conjunto de sistemas de regras. 3. Apoiar a função de preempção de recursos para garantir uma distribuição justa de recursos. | 1. Cenários em que vários usuários ou organizações precisam obter recursos de forma justa em um cluster compartilhado. 2. Ambientes com altos requisitos de controle de recursos em nível de fila e estratégias de agendamento refinadas. |