Como posso criar filas no meu Amazon EMR YARN CapacityScheduler?

3 minuto de leitura
0

Como faço para criar filas no meu Amazon EMR Hadoop YARN CapacityScheduler?

Breve descrição

Os clusters do EMR têm uma única fila por padrão. Você pode adicionar filas adicionais ao seu cluster e alocar a capacidade disponível de recursos do cluster para suas novas filas.

Resolução

Criar um comando de reconfiguração

O exemplo de reconfiguração a seguir faz o seguinte:

  • Cria duas filas adicionais, alfa e beta.
  • Aloca 30% da capacidade total de recursos do seu cluster para cada uma das novas filas. Ao adicionar filas e alocar a capacidade do cluster, a soma das capacidades de todas as filas deve ser igual a 100. Portanto, no exemplo de reconfiguração a seguir, a capacidade da fila padrão diminui para 40%.
  • Fornece acesso total (designado pelo rótulo “*”) às duas filas. Isso permite que ambas as filas acessem os nós centrais rotulados.
  • Para enviar para uma fila específica, especifique a fila no parâmetro yarn.scheduler.capacity.queue-mappings. Esse parâmetro mapeia os usuários para uma fila com o mesmo nome do usuário. O nome da fila principal deve ser o mesmo do grupo principal do usuário, como u:user:primary_group.user. No exemplo a seguir, o parâmetro é definido como u:hadoop:alpha. Isso mapeia a fila alpha recém-criada.

Observação: a capacidade de acesso de cada fila ao rótulo principal corresponde à capacidade da própria fila. Portanto, a partição principal se divide entre filas na mesma proporção do resto do cluster.

- Classification: capacity-scheduler
  Properties:
    yarn.scheduler.capacity.root.queues: 'default,alpha,beta'
    yarn.scheduler.capacity.root.default.capacity: '40'
    yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: '40'
    yarn.scheduler.capacity.root.alpha.capacity: '30'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.alpha.accessible-node-labels.CORE.capacity: '30'
    yarn.scheduler.capacity.root.beta.capacity: '30'
    yarn.scheduler.capacity.root.beta.accessible-node-labels: '*'
    yarn.scheduler.capacity.root.beta.accessible-node-labels.CORE.capacity: '30'
- classification: yarn-site
  properties:
    yarn.scheduler.capacity.queue-mappings: 'u:hadoop:alpha'
  configurations: []

Observação: se você quiser substituir as configurações padrão de mapeamento de filas, defina o parâmetro yarn.scheduler.capacity.queue-mappings-override.enable como true. Por padrão, esse parâmetro é definido como falso. Quando definido como true, os usuários podem enviar trabalhos para filas diferentes da fila designada. Para obter mais informações, consulte Habilitar a substituição de mapeamentos de fila padrão no site da Hortonworks Docs.

Verifique suas modificações

Acesse a UI Web do YARN ResourceManager para verificar se suas modificações ocorreram.

Veja a seguir um exemplo de um trabalho do Spark enviado no Amazon EMR 6.4.0 que tem o exemplo de reconfiguração anterior:

spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --conf spark.driver.memoryOverhead=512 --conf spark.executor.memoryOverhead=512 /usr/lib/spark/examples/jars/spark-examples.jar 100

SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/usr/lib/spark/jars/slf4j-log4j12-1.7.30.jar!/org/slf4j/impl/StaticLoggerBinder.class]
...
...
...
22/11/29 07:58:07 INFO Client: Application report for application_1669707794547_0001 (state: ACCEPTED)
22/11/29 07:58:08 INFO Client: Application report for application_1669707794547_0001 (state: RUNNING)

This application application_1669707794547_0001 is submitted to queue "alpha"

Informações relacionadas

Hadoop: Capacity Scheduler no site do Apache Hadoop

Configure o Hadoop YARN CapacityScheduler no Amazon EMR no Amazon EC2 para workloads heterogêneas de vários locatários

AWS OFICIAL
AWS OFICIALAtualizada há um ano