Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Computação
Elastic Cloud Server
Bare Metal Server
Auto Scaling
Image Management Service
Dedicated Host
FunctionGraph
Cloud Phone Host
Huawei Cloud EulerOS
Redes
Virtual Private Cloud
Elastic IP
Elastic Load Balance
NAT Gateway
Direct Connect
Virtual Private Network
VPC Endpoint
Cloud Connect
Enterprise Router
Enterprise Switch
Global Accelerator
Gerenciamento e governança
Cloud Eye
Identity and Access Management
Cloud Trace Service
Resource Formation Service
Tag Management Service
Log Tank Service
Config
Resource Access Manager
Simple Message Notification
Application Performance Management
Application Operations Management
Organizations
Optimization Advisor
Cloud Operations Center
Resource Governance Center
Migração
Server Migration Service
Object Storage Migration Service
Cloud Data Migration
Migration Center
Cloud Ecosystem
KooGallery
Partner Center
User Support
My Account
Billing Center
Cost Center
Resource Center
Enterprise Management
Service Tickets
HUAWEI CLOUD (International) FAQs
ICP Filing
Support Plans
My Credentials
Customer Operation Capabilities
Partner Support Plans
Professional Services
Análises
MapReduce Service
Data Lake Insight
CloudTable Service
Cloud Search Service
Data Lake Visualization
Data Ingestion Service
GaussDB(DWS)
DataArts Studio
IoT
IoT Device Access
Outros
Product Pricing Details
System Permissions
Console Quick Start
Common FAQs
Instructions for Associating with a HUAWEI CLOUD Partner
Message Center
Segurança e conformidade
Security Technologies and Applications
Web Application Firewall
Host Security Service
Cloud Firewall
SecMaster
Anti-DDoS Service
Data Encryption Workshop
Database Security Service
Cloud Bastion Host
Data Security Center
Cloud Certificate Manager
Blockchain
Blockchain Service
Serviços de mídia
Media Processing Center
Video On Demand
Live
SparkRTC
Armazenamento
Object Storage Service
Elastic Volume Service
Cloud Backup and Recovery
Cloud Server Backup Service
Storage Disaster Recovery Service
Scalable File Service
Volume Backup Service
Data Express Service
Dedicated Distributed Storage Service
Containers
Cloud Container Engine
SoftWare Repository for Container
Application Service Mesh
Ubiquitous Cloud Native Service
Cloud Container Instance
Bancos de dados
Relational Database Service
Document Database Service
Data Admin Service
Data Replication Service
GeminiDB
GaussDB
Distributed Database Middleware
Database and Application Migration UGO
TaurusDB
Middleware
Distributed Cache Service
API Gateway
Distributed Message Service for Kafka
Distributed Message Service for RabbitMQ
Distributed Message Service for RocketMQ
Cloud Service Engine
EventGrid
Dedicated Cloud
Dedicated Computing Cluster
Aplicações de negócios
ROMA Connect
Message & SMS
Domain Name Service
Edge Data Center Management
Meeting
AI
Face Recognition Service
Graph Engine Service
Content Moderation
Image Recognition
Data Lake Factory
Optical Character Recognition
ModelArts
ImageSearch
Conversational Bot Service
Speech Interaction Service
Huawei HiLens
Developer Tools
SDK Developer Guide
API Request Signing Guide
Terraform
Koo Command Line Interface
Distribuição de conteúdo e computação de borda
Content Delivery Network
Intelligent EdgeFabric
CloudPond
Soluções
SAP Cloud
High Performance Computing
Serviços para desenvolvedore
ServiceStage
CodeArts
CodeArts PerfTest
CodeArts Req
CodeArts Pipeline
CodeArts Build
CodeArts Deploy
CodeArts Artifact
CodeArts TestPlan
CodeArts Check
Cloud Application Engine
MacroVerse aPaaS
KooPhone
KooDrive

Princípios básicos do YARN

Atualizado em 2023-05-19 GMT+08:00

A comunidade Apache apresenta a estrutura de gerenciamento de recursos unificado do YARN para compartilhar clusters do Hadoop, melhorar sua escalabilidade e confiabilidade e eliminar um gargalo de desempenho de JobTracker na estrutura inicial do MapReduce.

A ideia fundamental do YARN é dividir as duas principais funcionalidades do JobTracker, gerenciamento de recursos e agendamento/monitoramento de jobs, em daemons separados. A ideia é ter uma ResourceManager global (RM) e uma ApplicationMaster por aplicação (AM).

Uma aplicação é um job único no sentido clássico de jobs do MapReduce ou um Gráfico Acíclico Dirigido (DAG) de jobs.

Arquitetura

ResourceManager é a essência da estrutura em camadas do YARN. Essa entidade controla um cluster inteiro e gerencia a alocação de aplicações aos recursos de computação subjacentes. O ResourceManager aloca cuidadosamente vários recursos (computação, memória, largura de banda e assim por diante) para NodeManagers subjacentes (agentes por nó do YARN). O ResourceManager também trabalha com o ApplicationMasters para alocar recursos e trabalha com o NodeManagers para iniciar e monitorar suas aplicações subjacentes. Nesse contexto, o ApplicationMaster assumiu parte do papel do TaskTracker anterior, e o ResourceManager assumiu o papel do JobTracker.

O ApplicationMaster gerencia cada instância de uma aplicação em execução no YARN. O ApplicationMaster negocia recursos do ResourceManager e trabalha com os NodeManagers para monitorar a execução do contêiner e o uso de recursos (alocação de recursos de CPU e memória).

O NodeManager gerencia cada nó em um cluster do YARN. O NodeManager fornece serviços por nó em um cluster, desde supervisionar o gerenciamento de um contêiner durante seu ciclo de vida até monitorar recursos e rastrear a saúde de seus nós. O MRv1 gerencia a execução das tarefas Map e Reduce por meio de slots, enquanto o NodeManager gerencia contêiners abstratos, que representam recursos por nó disponíveis para um aplicativo específico.

Figura 1 Arquitetura

Tabela 1 descreve os componentes mostrados em Figura 1.

Tabela 1 Descrição da arquitetura

Nome

Descrição

Client

Cliente de uma aplicação do YARN. Você pode enviar uma tarefa para a ResourceManager e consultar o status operacional de uma aplicação usando o cliente.

ResourceManager(RM)

O RM gerencia e aloca centralmente todos os recursos no cluster. Ele recebe informações de cada nó (NodeManager) e aloca recursos para aplicações com base nos recursos coletados de acordo com uma política especificada.

NodeManager(NM)

NM é o agente em cada nó do YARN. Gerencia o nó de computação no cluster do Hadoop, estabelece comunicação com o ResourceManger e monitora o ciclo de vida dos contêineres, monitora o uso de recursos como memória e CPU de cada contêiner, rastreia o status do nó e gerencia logs e serviços auxiliares usados por diferentes aplicações.

ApplicationMaster (AM)

AM (App Mstr na figura acima) é responsável por todas as tarefas através do ciclo de vida de em uma aplicação. As tarefas incluem o seguinte: negociar com um agendador de RM para obter um recurso; alocar ainda mais os recursos obtidos para tarefas internas (alocação secundária de recursos); comunicar com o NM para iniciar ou parar tarefas; monitorar o status de execução de todas as tarefas; e solicitar recursos para tarefas novamente para reiniciar as tarefas quando as tarefas não forem executadas.

Container

Uma abstração de recursos no YARN. Ele encapsula recursos multidimensionais (incluindo apenas memória e CPU) em um determinado nó. Quando o ApplicationMaster solicita recursos do ResourceManager, o ResourceManager retorna recursos para o ApplicationMaster em um contêiner. O YARN aloca um contêiner para cada tarefa e a tarefa só pode usar os recursos encapsulados no contêiner.

No YARN, os agendadores de recursos organizam recursos por meio de filas hierárquicas. Isso garante que os recursos sejam alocados e compartilhados entre filas, melhorando assim o uso de recursos de cluster. O modelo de alocação de recursos principal do Superior Scheduler é o mesmo do Capacity Scheduler, conforme mostrado na figura a seguir.

Um agendador mantém as informações da fila. Você pode enviar aplicações para uma ou mais filas. Durante cada pulsação do NM, o agendador seleciona uma fila de acordo com uma regra de agendamento específica, seleciona uma aplicação na fila e aloca recursos para a aplicação. Se os recursos não forem alocados para a aplicação devido ao limite de alguns parâmetros, o agendador selecionará outra aplicação. Após a seleção, o agendador processa a solicitação de recurso desta aplicação. O agendador dá prioridade às solicitações de recursos locais primeiro, e depois para recursos no mesmo rack e, finalmente, para recursos de qualquer máquina.

Figura 2 Modelo de alocação de recursos

Princípio

A nova estrutura de MapReduce do Hadoop é chamada de MRv2 ou YARN. YARN é composto por ResourceManager, ApplicationMaster e NodeManager.

  • O ResourceManager é um gerenciador de recursos global que gerencia e aloca recursos no sistema. O ResourceManager é composto pelo Agendador e pelo Gerenciador de aplicações.
    • O Agendador aloca recursos do sistema para todas as aplicações em execução com base nas restrições, como capacidade e fila (por exemplo, aloca uma certa quantidade de recursos para uma fila e executa um número específico de jobs). Ele aloca recursos com base na demanda de aplicações, com o contêiner sendo usado como a unidade de alocação de recursos. Funcionando como uma unidade dinâmica de alocação de recursos, o Contêiner encapsula recursos de memória, CPU, disco e rede, limitando assim o recurso consumido por cada tarefa. Além disso, o Agendador é um componente plugável. Você pode projetar novos agendadores conforme necessário. O YARN fornece vários agendadores diretamente disponíveis, como o Fair Scheduler e o Capacity Scheduler.
    • O Gerenciador de aplicações gerencia todas as aplicações no sistema e envolve o envio de aplicações, negociação com agendadores sobre recursos, ativação e monitoramento do ApplicationMaster e reinicialização do ApplicationMaster em caso de falha de inicialização.
  • O NodeManager é o gerenciador de recursos e tarefas de cada nó. Por um lado, o NodeManager informa periodicamente o uso de recursos do nó local e o status de execução de cada Contêiner para ResourceManager. Por outro lado, o NodeManager recebe e processa solicitações de ApplicationMaster para iniciar ou interromper Contêineres.
  • O ApplicationMaster é responsável por todas as tarefas durante o ciclo de vida de um aplicativo, esses canais incluem o seguinte:
    • Negociar com o agendador RM para obter recursos.
    • Atribuir recursos a componentes internos (alocação secundária de recursos).
    • Comunicar-se com o NodeManager para iniciar ou interromper tarefas.
    • Monitorar o status de execução de todas as tarefas e aplique recursos novamente para tarefas quando as tarefas não forem executadas para reiniciar as tarefas.

Princípio do Capacity Scheduler

O Capacity Scheduler é um agendador multiusuário. Ele aloca recursos por fila e define os recursos mínimos/máximos que podem ser usados para cada fila. Além disso, o limite superior de uso de recursos é definido para cada usuário para evitar abuso de recursos. Os recursos restantes de uma fila podem ser compartilhados temporariamente com outras filas.

O Capacity Scheduler suporta várias filas. Ele configura uma certa quantidade de recursos para cada fila e adota a política de agendamento de enfileiramento primeiro a entrar primeiro a sair (FIFO). Para impedir que os aplicativos de um usuário usem exclusivamente os recursos em uma fila, o Capacity Scheduler define um limite para o número de recursos usados por jobs enviados por um usuário. Durante a programação, o Capacity Scheduler calcula primeiro o número de recursos necessários para cada fila e seleciona a fila que requer menos recursos. Em seguida, ele aloca recursos com base na prioridade do job e no tempo em que os jobs são enviados, bem como no limite de recursos e memória. O Capacity Scheduler oferece suporte aos seguintes recursos:

  • Capacidade garantida: como administrador do cluster de MRS, você pode definir os limites inferior e superior de uso de recursos para cada fila. Todas as aplicações enviadas a essa fila compartilham os recursos.
  • Alta flexibilidade: temporariamente, os recursos restantes de uma fila podem ser compartilhados com outras filas. No entanto, esses recursos devem ser liberados em caso de envio de novo pedido para a fila. Essa alocação flexível de recursos ajuda a melhorar notavelmente o uso de recursos.
  • Múltiplos locatários: vários usuários podem compartilhar um cluster e várias aplicações podem ser executadas simultaneamente. Para evitar o uso exclusivo de recursos por uma única aplicação, usuário ou fila, o administrador do cluster do MRS pode adicionar várias restrições (por exemplo, limite em tarefas simultâneas de uma única aplicação).
  • Proteção assegurada: uma lista de ACL é fornecida para cada fila para limitar estritamente o acesso do usuário. Você pode especificar os usuários que podem exibir o status do aplicativo ou controlar os aplicativos. Além disso, o administrador de cluster do MRS pode especificar um administrador de fila e um administrador de sistema de cluster.
  • Atualização dinâmica dos arquivos de configuração: os administradores de cluster do MRS podem modificar dinamicamente os parâmetros de configuração para gerenciar clusters on-line.

Cada fila no Capacity Scheduler pode limitar o uso de recursos. No entanto, o uso de recursos de uma fila determina sua prioridade quando os recursos são alocados às filas, indicando que as filas com menor capacidade são competitivas. Se a taxa de transferência de um cluster for grande, o agendamento de atraso permite que uma aplicação desista do agendamento entre máquinas ou racks e solicite o agendamento local.

Usamos cookies para aprimorar nosso site e sua experiência. Ao continuar a navegar em nosso site, você aceita nossa política de cookies. Saiba mais

Feedback

Feedback

Feedback

0/500

Conteúdo selecionado

Envie o conteúdo selecionado com o feedback