Estimativa da capacidade de cluster do Amazon EMR - AWS Orientação prescritiva

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á.

Estimativa da capacidade de cluster do Amazon EMR

Embora o Amazon EMR seja uma plataforma redimensionável, é importante dimensionar os clusters adequadamente. O dimensionamento adequado evita um cluster lento, se subdimensionado, ou custos mais altos, se o cluster for superdimensionado. Para antecipar esses problemas, você pode calcular o número e o tipo de nós que serão necessários para as workloads.

Nós primários

Esse tipo de nó é responsável por coordenar a distribuição de dados e processos. Como mencionado anteriormente, os requisitos computacionais para nós primários são baixos. Você pode usar um só nó primário para gerenciar seu cluster do Amazon EMR. No entanto, é possível usar até três nós primários para não ter um único ponto de falha. Se um nó primário falhar, o Amazon EMR fará o failover para um dos outros dois nós primários.

Nós centrais e de tarefas

A diferença entre os nós centrais e os de tarefa é que os nós de tarefas não armazenam dados; eles apenas fornecem o poder para realizar tarefas computacionais paralelas.

Para calcular o número de nós centrais e de tarefas, você deve saber o tamanho dos dados e o uso aproximado de memória.

Nós centrais

Os nós centrais são responsáveis por executar tarefas para processar os dados e também para armazenar dados no Sistema de Arquivos Distribuído do Hadoop (HDFS). Para calcular a capacidade dos nós centrais, defina o número de nós centrais e, em seguida, multiplique o número de nós pelo armazenamento do Amazon Elastic Block Store (Amazon EBS) de cada nó.

Por exemplo, se você definir 10 nós centrais para processar 1 TiB de dados e tiver um tipo instantâneo m5.xlarge com 64 GiB de armazenamento do Amazon EBS, você terá 10 nodes × 64 GiB, ou 640 GiB de capacidade. Com base no fator de replicação de 3 do HDFS, o tamanho dos dados será replicado 3 vezes nos nós, portanto, 1 TiB de dados requer uma capacidade de 3 TiB. Como esse exemplo tem apenas 640 GiB, você deverá aumentar o número de nós ou alterar o tipo de instância até ter uma capacidade de 3 TiB.

O tipo de instância m5.4xlarge tem 256 GiB de armazenamento. Mudar para um tipo de instância m5.4xlarge e selecionar 12 instâncias fornecerá capacidade suficiente.

12 instances × 256 GiB of storage = 3072 GiB = 3 TiB available

Nós de tarefa

Os nós de tarefas apenas executam tarefas. Eles não armazenam dados. Para calcular o número de nós de tarefas, você precisa de uma estimativa do uso de memória. É possível dividir essa capacidade entre nós centrais e de tarefas. Para calcular o número de nós de tarefas necessários, você pode subtrair do uso da memória a memória fornecida pelos nós centrais que você calculou na etapa anterior.

Para ter uma faixa maior de memória, recomenda-se multiplicar a memória necessária por três.

Suponha que você tenha 28 processos de 20 GiB cada.

3 × 28 processes × 20 GiB of memory = 1680 GiB of memory

Neste exemplo, seus nós centrais têm 64 GiB de memória (instâncias m5.4xlarge). Seus nós principais fornecem 64 GiB × 12 nodes = 768 GiB of memory, o que não é suficiente neste exemplo.

Para encontrar o valor que falta, subtraia a memória do nó central da memória total necessária.

1680 GiB – 768 GiB core node memory = 912 GiB memory shortage.

Os nós de tarefas podem fornecer os 912 GiB restantes de memória. Neste exemplo, seus nós de tarefas têm 32 GiB de memória (instâncias m5.2xlarge). Para obter o número de nós de tarefas necessários, divida a memória faltante pela memória do tipo de instância.

912 GiB/32 GiB = 28.5 task nodes

Você não pode ter uma fração de um nó de tarefa, então será necessário arredondar para 29 nós de tarefas.