Configurando tipos de instância de cluster e melhores práticas para instâncias spot - Amazon EMR

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configurando tipos de instância de cluster e melhores práticas para instâncias spot

Use a orientação nesta seção para ajudá-lo a determinar os tipos de instância, as opções de compra e a quantidade de armazenamento a ser provisionada para cada tipo de nó em um EMR cluster.

Que tipo de instância você deve usar?

Há várias maneiras de adicionar EC2 instâncias da Amazon a um cluster. O método a ser escolhido depende se você usará a configuração de grupos de instâncias ou a configuração de frotas de instâncias para o cluster.

  • Grupos de instâncias

    • Adicione manualmente instâncias do mesmo tipo a grupos de instâncias core e de tarefa existentes.

    • Adicione manualmente um grupo de instâncias de tarefa, que pode usar um tipo de instância diferente.

    • Configure a escalabilidade automática na Amazon EMR para um grupo de instâncias, adicionando e removendo instâncias automaticamente com base no valor de uma CloudWatch métrica da Amazon que você especificar. Para obter mais informações, consulte Use a escalabilidade de EMR cluster da Amazon para se ajustar às mudanças nas cargas de trabalho.

  • Frotas de instâncias

Uma maneira de planejar as instâncias do seu cluster é executar um cluster de teste com um conjunto de dados de amostra representativo e monitorar a utilização dos nós nesse cluster. Para obter mais informações, consulte Visualize e monitore um EMR cluster da Amazon enquanto ele executa o trabalho. Outra maneira é calcular a capacidade das instâncias que você está considerando e comparar esse valor com o tamanho dos seus dados.

Em geral, o tipo de nó primário, que atribui tarefas, não exige uma EC2 instância com muito poder de processamento; as EC2 instâncias da Amazon para o tipo de nó principal, que processam tarefas e armazenam dadosHDFS, precisam tanto de poder de processamento quanto de capacidade de armazenamento; as EC2 instâncias da Amazon para o tipo de nó de tarefa, que não armazenam dados, precisam apenas de poder de processamento. Para obter diretrizes sobre as EC2 instâncias disponíveis da Amazon e suas configurações, consulteConfigurar tipos de EC2 instância da Amazon para uso com a Amazon EMR.

As diretrizes a seguir se aplicam à maioria dos EMR clusters da Amazon.

  • Há um CPU limite v para o número total de EC2 instâncias sob demanda da Amazon que você executa em um AWS conta por Região da AWS. Para obter mais informações sobre o CPU limite v e como solicitar um aumento de limite para sua conta, consulte Instâncias sob demanda no Guia do EC2 usuário da Amazon para instâncias Linux.

  • O nó primário normalmente não tem grandes requisitos de computação. Para clusters com um grande número de nós ou para clusters com aplicativos que são implantados especificamente no nó primário (JupyterHub, Hue etc.), um nó primário maior pode ser necessário e pode ajudar a melhorar o desempenho do cluster. Por exemplo, considere usar uma instância m5.xlarge para clusters pequenos (até 50 nós) e aumentar para um tipo de instância maior para clusters maiores.

  • As necessidades de computação dos nós core e de tarefas dependem do tipo de processamento realizado pelo seu aplicativo. Muitos trabalhos podem ser executados em tipos de instância de uso geral, que oferecem desempenho equilibrado em termos de CPU espaço em disco e entrada/saída. Clusters com uso intensivo de computação podem se beneficiar da execução em CPU instâncias altas, que têm proporcionalmente mais de. CPU RAM Aplicativos de banco de dados e de cache de memória podem se beneficiar com a execução em instâncias com mais memória. Aplicativos com uso intenso e CPU intenso de rede, como análise e aprendizado de máquinaNLP, podem se beneficiar da execução em instâncias de computação em cluster, que fornecem recursos proporcionalmente altos e maior desempenho da rede. CPU

  • Se diferentes fases do seu cluster tiverem necessidades de capacidade diferentes, você pode começar com um pequeno número de nós core e aumentar ou diminuir o número de nós de tarefas para atender aos requisitos de capacidade variáveis do seu fluxo de trabalho.

  • A quantidade de dados que você pode processar depende da capacidade de nós core e do tamanho dos seus dados como entrada, durante o processamento, e como saída. Os conjuntos de dados de entrada, intermediários e de saída residem todos no cluster durante o processamento.

Quando você deve usar instâncias spot?

Ao iniciar um cluster na AmazonEMR, você pode optar por iniciar instâncias primárias, principais ou de tarefas nas Instâncias Spot. Como cada tipo de grupo de instâncias desempenha um papel diferente no cluster, há implicações na execução de cada tipo de nó em instâncias spot. Você não pode alterar uma opção de compra de instância enquanto um cluster está em execução. Para alterar um grupo de instâncias sob demanda para instâncias spot, ou vice-versa, para nós primários e centrais, você deve terminar o cluster e iniciar um novo. Para nós de tarefa, você pode iniciar um novo grupo de instâncias de tarefa ou frota de instâncias e remover o antigo.

EMRConfigurações da Amazon para evitar falhas no trabalho devido ao encerramento da instância spot do nó da tarefa

Como as Instâncias Spot são frequentemente usadas para executar nós de tarefas, a Amazon EMR tem a funcionalidade padrão para agendar YARN trabalhos para que os trabalhos em execução não falhem quando os nós de tarefas executados em Instâncias Spot forem encerrados. EMRA Amazon faz isso permitindo que os processos principais do aplicativo sejam executados somente nos nós principais. O processo principal da aplicação controla os trabalhos em execução e precisa permanecer ativo durante a vida útil do trabalho.

A EMR versão 5.19.0 e posterior da Amazon usa o recurso integrado de rótulos de YARN nós para fazer isso. (As versões anteriores usavam um patch de código). As propriedades nas classificações de capacity-scheduler configuração yarn-site e são configuradas por padrão para que o planejador YARN de capacidade e o agendador justo aproveitem os rótulos dos nós. A Amazon rotula EMR automaticamente os nós principais com o CORE rótulo e define propriedades para que os mestres do aplicativo sejam programados somente nos nós com o CORE rótulo. A modificação manual das propriedades relacionadas nas classificações de configuração yarn-site e capacity-scheduler, ou diretamente nos XML arquivos associados, pode interromper esse recurso ou modificar essa funcionalidade.

A Amazon EMR configura as seguintes propriedades e valores por padrão. Tenha cuidado ao configurar essas propriedades.

nota

A partir da série de lançamento Amazon EMR 6.x, o recurso de rótulos de YARN nós está desativado por padrão. Os processos primários da aplicação podem ser executados tanto nos nós centrais como nos nós de tarefa por padrão. Você pode ativar o recurso de rótulos de YARN nós configurando as seguintes propriedades:

  • yarn.node-labels.enabled: true

  • yarn.node-labels.am.default-node-label-expression: 'CORE'

  • yarn-site (yarn-site.xml) Em todos os nós

    • yarn.node-labels.enabled: true

    • yarn.node-labels.am.default-node-label-expression: 'CORE'

    • yarn.node-labels.fs-store.root-dir: '/apps/yarn/nodelabels'

    • yarn.node-labels.configuration-type: 'distributed'

  • yarn-site (yarn-site.xml) em nós primários e centrais

    • yarn.nodemanager.node-labels.provider: 'config'

    • yarn.nodemanager.node-labels.provider.configured-node-partition: 'CORE'

  • capacity-scheduler (capacity-scheduler.xml) Em todos os nós

    • yarn.scheduler.capacity.root.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.accessible-node-labels.CORE.capacity: 100

    • yarn.scheduler.capacity.root.default.accessible-node-labels: '*'

    • yarn.scheduler.capacity.root.default.accessible-node-labels.CORE.capacity: 100

Nó primário como uma instância spot

O nó primário controla e direciona o cluster. Quando ela for terminada, o cluster será encerrado. Portanto, você só deve iniciar o nó primário como uma instância spot se você estiver executando um cluster em que o término repentino seja aceitável. Este pode ser o caso se você está testando uma nova aplicação, tem um cluster que periodicamente mantém a persistência de dados em um armazenamento externo, como o Amazon S3, ou está executando um cluster em que o custo é mais importante do que garantir a conclusão do cluster.

Quando você executa o grupo de instâncias primárias como uma instância spot, o cluster não é iniciado até que essa solicitação de instância spot seja atendida. Isso é algo a considerar ao selecionar seu preço spot máximo.

Você só pode adicionar um nó primário de instância spot ao iniciar o cluster. Não é possível adicionar ou remover nós primários de um cluster em execução.

Normalmente, você só executaria o nó primário como uma instância spot se estivesse executando o cluster inteiro (todos os grupos de instâncias) como instâncias spot.

Nós centrais em instâncias spot

Os nós principais processam dados e armazenam informações usandoHDFS. O encerramento de uma instância core representa risco de perda de dados. Por esse motivo, você só deve executar nós principais em instâncias spot quando a perda parcial de HDFS dados for tolerável.

Quando você inicia o grupo de instâncias principais como Instâncias Spot, a Amazon EMR espera até que possa provisionar todas as instâncias principais solicitadas antes de iniciar o grupo de instâncias. Em outras palavras, se você solicitar seis EC2 instâncias da Amazon e apenas cinco estiverem disponíveis no preço spot máximo ou abaixo dele, o grupo de instâncias não será iniciado. EMRA Amazon continua esperando até que todas as seis EC2 instâncias da Amazon estejam disponíveis ou até que você encerre o cluster. Você pode alterar o número de instâncias spot em um grupo de instâncias core para adicionar capacidade a um cluster em execução. Para obter mais informações sobre como trabalhar com grupos de instâncias, e como as instâncias spot funcionam com frotas de instâncias, consulte Criar um cluster com frotas de instâncias ou grupos de instâncias uniformes.

Nós de tarefa em instâncias spot

Os nós da tarefa processam dados, mas não armazenam dados persistentesHDFS. Se eles forem encerrados porque o preço spot ultrapassou seu preço spot máximo, não haverá perda de dados, e o efeito no seu cluster será mínimo.

Quando você executa um ou mais grupos de instâncias de tarefas como Instâncias Spot, a Amazon EMR provisiona o maior número possível de nós de tarefas, usando seu preço spot máximo. Isso significa que, se você solicitar um grupo de instâncias de tarefas com seis nós e apenas cinco instâncias spot estiverem disponíveis no preço spot máximo ou abaixo dele, a Amazon EMR lançará o grupo de instâncias com cinco nós, adicionando o sexto posteriormente, se possível.

A execução de grupos de instâncias de tarefas como instâncias Spot é uma maneira estratégica de expandir a capacidade do seu cluster e, ao mesmo tempo, minimizar os custos. Se você executar os grupos de instâncias primárias e centrais como instâncias sob demanda, a capacidade será garantida para a execução do cluster. Você pode adicionar instâncias de tarefa aos grupos de instâncias da tarefa conforme necessário, para processar picos de tráfego ou agilizar processamento de dados.

Você pode adicionar ou remover nós de tarefas usando o console, AWS CLI, ouAPI. Você também pode acrescentar grupos de tarefas adicionais, mas não poderá remover um grupo de tarefas depois de criado.

Configurações de instâncias para cenários de aplicações

A tabela a seguir é uma referência rápida às opções de compras de tipos de nó e configurações que são geralmente apropriadas para vários cenários de aplicativos. Escolha o link para exibir mais informações sobre cada tipo de cenário.

Cenário de aplicações Opção de compra do nó primário Opção de compra de nós centrais Opção de compra de nós de tarefa
Clusters de execução prolongada e data warehouses Sob demanda Combinação de frotas de instâncias ou Sob demanda Combinação de spot ou frota de instâncias
Cargas de trabalho com base no custo Spot Spot Spot
Cargas de trabalho críticas para dados Sob demanda Sob demanda Combinação de spot ou frota de instâncias
Testes de aplicativos Spot Spot Spot

Há vários cenários nos quais as Instâncias Spot são úteis para executar um EMR cluster da Amazon.

Clusters de execução prolongada e data warehouses

Se você estiver executando um EMR cluster persistente da Amazon que tem uma variação previsível na capacidade computacional, como um data warehouse, você pode lidar com a demanda de pico a um custo menor com instâncias spot. Você pode iniciar seus grupos de instâncias primárias e central como instâncias sob demanda para lidar com a capacidade normal e iniciar o grupo de instâncias de tarefa como instâncias spot para lidar com requisitos de carga de pico.

Cargas de trabalho com base no custo

Ao executar clusters transitórios para os quais um custo menor é mais importante do que o tempo para conclusão, e uma perda parcial do trabalho é aceitável, você pode executar o cluster inteiro (grupos de instâncias primárias, centrais e de tarefa) como instâncias spot para se beneficiar com a maior redução dos custos.

Cargas de trabalho críticas para dados

Se você estiver executando um cluster para o qual o menor custo é mais importante que o tempo para conclusão, mas uma perda parcial do trabalho não é aceitável, inicie os grupos de instâncias primárias e centrais como instâncias sob demanda e complemente-as com um ou mais grupos de instâncias de tarefa de instâncias spot. A execução dos grupos de instâncias principal e principal como instâncias sob demanda garante que seus dados persistam HDFS e que o cluster esteja protegido contra o encerramento devido às flutuações do mercado spot, ao mesmo tempo em que proporciona economias decorrentes da execução dos grupos de instâncias de tarefas como instâncias spot.

Testes de aplicativos

Ao testar uma nova aplicação a fim de prepará-la para inicialização em um ambiente de produção, você pode executar o cluster inteiro (grupos de instâncias primárias, centrais e de tarefa) como instâncias spot para reduzir os custos de testes.

Calculando a HDFS capacidade necessária de um cluster

A quantidade de HDFS armazenamento disponível para seu cluster depende dos seguintes fatores:

  • O número de EC2 instâncias da Amazon usadas para os nós principais.

  • A capacidade do armazenamento de EC2 instâncias da Amazon para o tipo de instância usado. Para obter mais informações sobre volumes de armazenamento de instâncias, consulte Amazon Amazon EC2 Instance Store no Guia EC2 do usuário da Amazon.

  • O número e o tamanho dos EBS volumes da Amazon anexados aos nós principais.

  • Um fator de replicação, que explica como cada bloco de dados é armazenado HDFS para uma redundância RAID semelhante. Por padrão, o fator de replicação é de três para um cluster de 10 ou mais nós core, dois para um cluster com 4 a 9 nós core e um para um cluster de três nós ou menos.

Para calcular a HDFS capacidade de um cluster, para cada nó central, adicione a capacidade do volume de armazenamento da instância à capacidade EBS de armazenamento da Amazon (se usada). Multiplique o resultado pelo número de nós core e, em seguida, divida o total pelo fator de replicação com base no número de nós core. Por exemplo, um cluster com 10 nós principais do tipo i2.xlarge, que tem 800 GB de armazenamento de instância sem nenhum EBS volume vinculado da Amazon, tem um total de aproximadamente 2.666 GB disponíveis para HDFS (10 nós x 800 GB ÷ 3 fatores de replicação).

Se o valor da HDFS capacidade calculada for menor que seus dados, você poderá aumentar a quantidade de HDFS armazenamento das seguintes formas:

  • Criar um cluster com EBS volumes adicionais da Amazon ou adicionar grupos de instâncias com EBS volumes Amazon anexados a um cluster existente

  • Adicionando mais nós core

  • Escolha de um tipo de EC2 instância da Amazon com maior capacidade de armazenamento

  • Usando a compactação de dados

  • Alterando as definições de configuração do Hadoop para reduzir o fator de replicação

A redução do fator de replicação deve ser usada com cuidado, pois reduz a redundância dos HDFS dados e a capacidade do cluster de se recuperar de blocos perdidos ou corrompidos. HDFS