• Shuffle
    Toggle On
    Toggle Off
  • Alphabetize
    Toggle On
    Toggle Off
  • Front First
    Toggle On
    Toggle Off
  • Both Sides
    Toggle On
    Toggle Off
  • Read
    Toggle On
    Toggle Off
Reading...
Front

Card Range To Study

through

image

Play button

image

Play button

image

Progress

1/21

Click to flip

Use LEFT and RIGHT arrow keys to navigate between flashcards;

Use UP and DOWN arrow keys to flip the card;

H to show hint;

A reads text to speech;

21 Cards in this Set

  • Front
  • Back

O que é o YARN?

É o gerenciador de recursos do cluster do hadoop.

Quais os dois serviços principais do YARN?

resource manager, node manager.

O que faz o serviço (daemon) resource manager do YARN?

Gerencia os recursos através do cluster.

O que faz o serviço (daemon) node manager do YARN?

executam e monitoram os containers.

O que é um container do cluster?

Um container executa um processo de uma aplicação específica com um conjutos de recursos limitados pelo YARN.

Como o YARN executa as aplicações?

1 - Um cliente contata o resource manager e solicita para executar um processo de uma aplicação.




2 - O resource manager procura um node manager que possa executar a aplicação em um container. O que a aplicação vai fazer depende da aplicação, pode executar algum processamento ou executar os passoa abaixo.




3 - Solicita mais containers para o resource manager.




4 - Usa os container para realizar um processo distribuído.

O que são os resource request?

YARN possuí um modelo flexível para solicitar recursos. Uma requisição para um conjunto de containers podem expressar uma quantidade recursos para cada container (memória e cpu), assim como, as regras de localidade para os containers no request.

O que é Locality dentro do context do YARN?

É um mecanismo para garantir o uso da largura de banda eficiente nos processamentos distríbuídos do cluster. Locality é usado para especificar um nó, rack ou cluster a ser executado algo.

O que acontece se a Locality especifica para startar um container não estiver disponível, por exemplo não tem recurso no nó específicado?

Caso não seja possível startar o container na Locality especificada, o YARN tentará startar o container no mesmo rack se mesmo assim não tiver espaço tentará no mesmo cluter.

O que acontece quando uma aplicação solicita recursos ao YARN?

Ela tenta alocar um container em um nó onde haja blocos HDFS para a aplicação, caso não seja apossível tentará alocar no mesmo rack onde estão parte dos dados caso não seja possível tentará alocar no cluster. Se nenhuma das opções estão disponíveis lançará uma falha no processo.

Que paradigma de processamento solicita todos os recursos no inicio do processamento? Qual solicita dinamicamente com base na execução da Aplicação.

SPARK: solicita os recursos de forma fixa no inicio da execução.




MapReduce: solicita os rescursos dinamicamente, primeiro solicita para as funções de map e depois para as de reduce, pois se falhar uma execução de map será alocado outros recursos para terminar o processamento.

Qual é a vida útil de uma aplicação YARN?

Dependende do tipo de aplicação:




- Pode ser uma aplicação por job de usuário, modelo usado pelo MapReduce.




- Uma aplicação por WorkFlow modelo usado pelo SPARK, esta abordagem pode ser mais eficiente desde de que os containers possam ser reusados entre os jobs, existe a possibilidade de criar caches intermediarios entre os jobs.





Quais os benefícios em usar o YARN ao invés do MapReduce 1?

Escalabilidade: O mapreduce um pode exeuctar até 4.000 nodes e 40.000 tasks pelo fato do jobtracker ter de lidar com ambos jobs e taks. já o yarn pode executar 10.000 nodes e 100.000 taks e cada aplicação tem um application mater (yarn) dedicada conforme o papel do GoogleMapReduce.




Disponibilidade: é conseguida pela replicação dos dados em outro nó caso ocorra falha, como o jobtracker do mapreduce 1 faz tanto a o papel do resource manager, application master e job historyé muito mais complexo garantir alta disponibilidade do que no yarn que segue a filosofia de dividir para conquistar.




Utilização: No mapreduce 1 os rescursos são alocados de forma fixa dividido em slots existem tanto slot de map como slot de reduce e um slot de reduce só pode ser usado por uma tarefa de reduce. No Yarn a arquitetura é diferente o que existe é um pool de recursos ao invés de um número fixo de slots. usando o yarn nunca ocorreria de executar uma tarefa de reduce e não ter slots de reduce para exeução como no mapreduce 1.




Multitenancy: Porém com o yarn pode rodar diferentes tipos de processamento, assim como spark, map reduce 2, e map reduce 1 no mesmo cluster.

Quais são os três tipos de schedules disponíveis no YARN?

FIFO, Capacity, Fair Schedulers.

Como funciona o FIFO Scheduler?

O FIFO scheduler coloca as aplicações em uma fila e as executa por ordem de chegada (first in, first out) os primeiros requests a fila serão processados primeiro, quando ele terminar o próximo item da fila será processado. FIFO scheduler é simples, facil de entender e não requer alguma configuração, porém não é recomendado para cluster muito compartilhado onde haja muitas tarefas executando simultaneamente, pois uma aplicação grande pode consumir recursos demais e proxíma aplicação da fila ficar tempo demais esperando para ser executada. neste cenário é melhor usar Capacity ou Fair Schedulers pois permitem aplicações menores serem executadas em tempo hábil concorrentemente com outras aplicações.

Como funciona o Capacity Scheduler?

Ao contrário do FIFO, uma fila separada dedicada permite que pequenos jobs executem tão logo quanto possível, mesmo ao custo de utilização do job já que existe uma fila que é resevada para execução destes jobs menores significa que jobs maiores demoraram um tempo mais longo de execução.

Como funciona o Fair Scheduler?

Diferente do Capacity não é separada uma fila dedicada com uma capacidade especifica, os recursos são balanceados dinamicamente entre todos os jobs em execução, apenas depois da execução do primeiro job todo o recurso do cluster é setado para ele, quando o segundo job starta será alocado metado dos recursos do cluster para ele logo cada job terá metade dos recursos divido igualmente. quando o job menor é executado e liberar os recursos o job maior que ainda está em execução usará os recursos liberados. existe um pequeno lag até entre a requisição do recursos até a alocação do recursos para o segundo job. geralmente os jobs terminam mais rapidamente neste scheduler ao custo de usar todos os recursos do cluter.

O que significa o termo queue elasticity (elasticidade da fila) ?

Um job não utiliza mais recursos do que o disponível em sua fila, contudo se existir mais de um job na fila e existir recursos ociosos, então o Capacity Scheduler pode alocar recursos para este job mesmo que exceda a capacidade da fila, este comportamente é chamdad do queue elasticity.

Que arquivo é usado para configular o capacity-schedulers do yarn?

capacity-scheduler.xml

O que é o Delay Scheduling?

O Yarn sempre tenta honrrar com a Locality de uma solicitação de recursos, logo ao solicitar recurso a um node e este não tiver recursos disponivél o curso normal das coisas é procurar alocar o job em outro node no mesmo rack, porém as vezes é mais eficiente esperar alguns segundos até liberar recurso no node especifica isso é o delay scheduling.

O que é o heartbeat?

Cada node manager no YARN periodicamente envia requisiçõe de heartbeat para o resource manager por default 1 por segundo. Heartbeat carregam informações sobre a execução dos containers nos node managers. estas informações podem ser usadas como scheduling opportunities.