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á.
Flexibilidade da zona de disponibilidade em um cluster do Amazon EMR
Cada um Região da AWS tem vários locais isolados, conhecidos como zonas de disponibilidade. Ao iniciar uma instância, é possível especificar, opcionalmente, uma zona de disponibilidade (AZ) na Região da AWS utilizada. A flexibilidade da zona de disponibilidade é a distribuição de instâncias em várias AZs. Se houver falha em uma instância, você poderá projetar sua aplicação para que uma instância em outra AZ possa lidar com as solicitações. Para obter mais informações sobre zonas de disponibilidade, consulte a documentação da região e das zonas no Guia EC2 do usuário da Amazon.
A flexibilidade da instância é o uso de múltiplos tipos de instância para atender aos requisitos de capacidade. Ao expressar flexibilidade com instâncias, é possível usar a capacidade agregada em todos os tamanhos, famílias e gerações de instâncias. Uma flexibilidade maior aumenta a chance de encontrar e alocar a quantidade necessária de capacidade computacional comparado a um cluster que usa um único tipo de instância.
A flexibilidade da instância e da zona de disponibilidade reduz erros de capacidade insuficientes (ICE) e interrupções spot quando comparada a um cluster com um único tipo de instância ou AZ. Use as práticas recomendadas abordadas aqui para determinar quais instâncias diversificar depois de conhecer a família e o tamanho iniciais da instância. Essa abordagem maximiza a disponibilidade dos pools de EC2 capacidade da Amazon com o mínimo de desempenho e variação de custo.
Ser flexível em relação às zonas de disponibilidade
É recomendável configurar todas as zonas de disponibilidade para uso em sua nuvem privada virtual (VPC) e selecioná-las para o cluster do EMR. Os clusters devem existir em apenas uma zona de disponibilidade, mas com frotas de instâncias do Amazon EMR, é possível selecionar múltiplas sub-redes para diferentes zonas de disponibilidade. Quando o Amazon EMR executa o cluster, ele procura entre as sub-redes para encontrar as instâncias e opções de compra que você especificar. Quando você provisiona um cluster do EMR para várias sub-redes, seu cluster pode acessar um pool de EC2 capacidade mais profundo da Amazon quando comparado aos clusters em uma única sub-rede.
Se você precisar priorizar um certo número de zonas de disponibilidade para uso em sua nuvem privada virtual (VPC) para seu cluster EMR, você pode aproveitar o recurso de pontuação de posicionamento spot com a Amazon. EC2 Com a pontuação de posicionamento spot, você especifica os requisitos de computação para suas instâncias spot e, em seguida, EC2 retorna as dez Regiões da AWS principais zonas de disponibilidade pontuadas em uma escala de 1 a 10. Uma pontuação de 10 indica que a solicitação spot tem alta probabilidade de êxito; uma pontuação de 1 indica que a solicitação spot provavelmente não terá êxito. Para obter mais informações sobre como usar a pontuação de posicionamento spot, consulte Pontuação de posicionamento spot no Guia do EC2 usuário da Amazon.
Ser flexível em relação aos tipos de instância
A flexibilidade da instância é o uso de múltiplos tipos de instância para atender aos requisitos de capacidade. A flexibilidade da instância beneficia tanto o uso do Amazon EC2 Spot quanto do On-Demand Instance. Com as Instâncias Spot, a flexibilidade da instância permite que a Amazon EC2 lance instâncias a partir de pools de capacidade mais profundos usando dados de capacidade em tempo real. Também prevê quais instâncias estão mais disponíveis. Isso oferece menos interrupções e pode reduzir o custo geral da workload. Com instâncias sob demanda, a flexibilidade da instância reduz os erros de capacidade insuficiente (ICE) quando a capacidade total é provisionada em um número maior de grupos de instâncias.
Para clusters de grupos de instâncias, você pode especificar até 50 tipos de EC2 instância. Para frotas de instâncias com estratégia de alocação, você pode especificar até 30 tipos de EC2 instância para cada grupo de nós primário, principal e de tarefas. Uma variedade maior de instâncias melhora os benefícios da flexibilidade da instância.
Expressar a flexibilidade da instância
Considere as práticas recomendadas a seguir para expressar a flexibilidade de instância da aplicação.
Determinar a família e o tamanho da instância
O Amazon EMR oferece suporte a diversos tipos de instância para diferentes casos de uso. Esses tipos de instância estão listados na documentação Tipos de instância compatíveis do Amazon EMR. Cada tipo de instância pertence a uma família de instâncias que descreve para qual aplicação o tipo é otimizado.
Para novas workloads, compare com os tipos de instância da família de uso geral, como m5
ou c5
. Em seguida, monitore as métricas do sistema operacional e do YARN do Ganglia e do Amazon CloudWatch determine os gargalos do sistema no pico de carga. Os gargalos incluem operações de CPU, de memória, de armazenamento e de E/S. Após identificar os gargalos, escolha otimizado para computação, otimizado para memória, otimizado para armazenamento ou outra família de instâncias apropriada para seus tipos de instância. Para obter mais detalhes, consulte a página Determine a infraestrutura certa para suas cargas de trabalho do Spark
Em seguida, identifique o menor contêiner do YARN ou executor do Spark que a aplicação exige. Esse é o menor tamanho de instância adequado ao contêiner e o tamanho mínimo de instância para o cluster. Use essa métrica para determinar instâncias com as quais você poderá diversificar ainda mais. Uma instância menor permitirá maior flexibilidade da instância.
Para obter a máxima flexibilidade da instância, você deve aproveitar o maior número possível de instâncias. É recomendável diversificar com instâncias que tenham especificações de hardware semelhantes. Isso maximiza o acesso aos pools EC2 de capacidade com variação mínima de custo e desempenho. Diversifique em vários tamanhos. Para fazer isso, priorize antes o AWS Graviton e as gerações anteriores. Uma boa regra geral é tentar ser flexível para pelo menos 15 tipos de instância para cada workload. É recomendável começar com instâncias de uso geral, otimizadas para computação ou para memória. Esses tipos de instância fornecerão a maior flexibilidade.
Incluir instâncias adicionais
Para ter o máximo de diversidade, inclua outros tipos de instância. Priorize antes o tamanho da instância, o Graviton e a flexibilidade da geração. Isso permite o acesso a grupos EC2 de capacidade adicionais com perfis de custo e desempenho semelhantes. Se você precisar de mais flexibilidade devido ao ICE ou a interrupções pontuais, considere a flexibilidade de variantes e de famílias. Cada abordagem tem vantagens e desvantagens conforme o caso de uso e os requisitos.
-
Flexibilidade de tamanho: primeiro, diversifique com instâncias de tamanhos diferentes dentro da mesma família. As instâncias da mesma família oferecem o mesmo custo e performance, mas podem iniciar um número diferente de contêineres em cada host. Por exemplo, se o tamanho mínimo do executor necessário for de 2 vCPU e 8 Gb de memória, o tamanho mínimo da instância será
m5.xlarge
. Para flexibilidade de tamanho, incluam5.xlarge
,m5.2xlarge
,m5.4xlarge
,m5.8xlarge
,m5.12xlarge
,m5.16xlarge
em5.24xlarge
. -
Flexibilidade do Graviton: além do tamanho, você pode diversificar com instâncias do Graviton. As instâncias Graviton são alimentadas por processadores AWS Graviton2 que oferecem a melhor relação preço/desempenho para cargas de trabalho em nuvem na Amazon. EC2 Por exemplo, com o tamanho mínimo de instância de
m5.xlarge
, você pode incluirm6g.xlarge
,m6g.2xlarge
,m6g.4xlarge
,m6g.8xlarge
em6g.16xlarge
para flexibilidade do Graviton. -
Flexibilidade de geração: semelhante ao Graviton e à flexibilidade de tamanho, as instâncias das famílias da geração anterior compartilham as mesmas especificações de hardware. Isso resulta em um perfil de custo e desempenho semelhante, com um aumento no EC2 pool total acessível da Amazon. Para flexibilidade de geração, inclua
m4.xlarge
,m4.2xlarge
,m4.10xlarge
em4.16xlarge
. -
Flexibilidade de famílias e variantes
-
Capacidade: para otimizar a capacidade, recomendamos a flexibilidade de instâncias em todas as famílias de instâncias. Instâncias comuns de diferentes famílias de instâncias têm grupos de instâncias mais profundos que ajudam a atender aos requisitos de capacidade. Porém, instâncias de famílias diferentes terão diferentes proporções de vCPU em relação à memória. Isso resultará em subutilização se o contêiner da aplicação esperado for dimensionado para uma instância diferente. Por exemplo, com
m5.xlarge
, inclua instâncias otimizadas para computação, comoc5
, ou instâncias otimizadas para memória, comor5
para obter flexibilidade de família de instâncias. -
Custo: para otimizar o custo, recomenda-se a flexibilidade da instância em todas as variantes. Essas instâncias têm a mesma proporção de memória e de vCPU da instância inicial. A desvantagem com a flexibilidade de variantes é que essas instâncias têm grupos de capacidade menores, o que pode resultar em capacidade adicional limitada ou maiores interrupções spot. Com
m5.xlarge
, por exemplo, inclua instâncias baseadas em AMD (m5a
), instâncias baseadas em SSD (m5d
) ou instâncias otimizadas para rede (m5n
) para obter flexibilidade de variantes de instância.
-