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á.
Ajuste de escala avançado para o Amazon EMR
A partir do Amazon EMR na EC2 versão 7.0, você pode aproveitar o Advanced Scaling para controlar a utilização dos recursos do seu cluster. O Advanced Scaling introduz uma escala de utilização-desempenho para ajustar a utilização dos recursos e o nível de desempenho de acordo com as necessidades da sua empresa. O valor que você define determina se seu cluster é mais voltado para a conservação de recursos ou para a escalabilidade para lidar com cargas de trabalho sensíveis service-level-agreement (SLA), onde a conclusão rápida é essencial. Quando o valor do ajuste de escala é ajustado, o ajuste de escala gerenciado interpreta sua intenção e escala de maneira inteligente para otimizar os recursos. Para obter mais informações sobre o Ajuste de escala gerenciado, consulte Configurar o Ajuste de escala gerenciado para o Amazon EMR.
Configurações avançadas de dimensionamento
O valor que você definiu para o Ajuste de escala avançado otimiza o cluster de acordo com seus requisitos. Os valores variam de 1 a 100. Os valores possíveis são 1, 25, 50, 75 e 100. Se você definir o índice para valores diferentes, isso resultará em um erro de validação.
Valores de ajuste de escala são mapeados para estratégias de utilização de recursos. A lista a seguir define várias delas:
Utilização otimizada [1]: essa configuração evita o provisionamento excessivo de recursos. Use um valor baixo quando quiser manter os custos baixos e priorizar a utilização eficiente dos recursos. Isso faz com que o cluster aumente a escala verticalmente de maneira menos agressiva. Isso funciona bem para o caso de uso em que costumam ocorrer picos de workload e você não quer que os recursos aumentem muito rapidamente.
Equilibrada [50]: equilibra a utilização de recursos e a performance dos trabalhos. Essa configuração é adequada para workloads estáveis em que a maioria dos estágios tem um runtime estável. Também é adequado para workloads com uma combinação de estágios de curta e longa duração. Recomendamos começar com essa configuração se você não tem certeza de qual escolher.
Otimizad para performance [100]: essa estratégia prioriza a performance. O cluster se expande de maneira agressiva para garantir que os trabalhos sejam concluídos rapidamente e atendam às metas de performance. O desempenho otimizado é adequado para cargas de trabalho sensíveis service-level-agreement (SLA), nas quais o tempo de execução rápido é essencial.
nota
Os valores intermediários disponíveis fornecem um meio termo entre essas estratégias para ajustar o comportamento de Ajuste de escala avançado do cluster.
Benefícios do escalonamento avançado
Como há variabilidade no ambiente e nos requisitos, como alterações nos volumes de dados, ajustes nas metas de custos e implementações de SLAs, o ajuste de escala do cluster pode ajudar você a ajustar a configuração do cluster para atingir os seus objetivos. Os benefícios importantes incluem:
Controle granular aprimorado: a introdução da configuração de performance de utilização permite ajustar facilmente o comportamento de ajuste de escala do cluster de acordo com os seus requisitos. Você pode aumentar a escala verticalmente para atender à demanda por recursos de computação ou reduzir a escala verticalmente para economizar recursos com base em seus padrões de uso.
Otimização de custos aprimorada: você pode escolher um valor de utilização baixo, conforme os requisitos, para atender com mais facilidade aos seus objetivos de custo.
Conceitos básicos sobre otimização
Instalação e configuração
Use estas etapas para definir o índice de performance e otimizar sua estratégia de ajuste de escala.
O comando a seguir atualiza um cluster existente com a estratégia de ajuste de escala
[1]otimizada para utilização:aws emr put-managed-scaling-policy --cluster-id 'cluster-id' \ --managed-scaling-policy '{ "ComputeLimits": { "UnitType": "Instances", "MinimumCapacityUnits": 1, "MaximumCapacityUnits": 2, "MaximumOnDemandCapacityUnits": 2, "MaximumCoreCapacityUnits": 2 }, "ScalingStrategy": "ADVANCED", "UtilizationPerformanceIndex": "1" }' \ --region "region-name"Os atributos
ScalingStrategyeUtilizationPerformanceIndexsão novos e relevantes para a otimização de ajuste de escala. Você pode selecionar diferentes estratégias de ajuste de escala definindo valores correspondentes (1, 25, 50, 75 e 100) para o atributoUtilizationPerformanceIndexna política de ajuste de escala gerenciada.Para reverter para a estratégia padrão de ajuste de escala gerenciado, execute o comando
put-managed-scaling-policysem incluir os atributosScalingStrategyeUtilizationPerformanceIndex. (Isso é opcional.) Este exemplo mostra como fazer isso:aws emr put-managed-scaling-policy \ --cluster-id 'cluster-id' \ --managed-scaling-policy '{"ComputeLimits":{"UnitType":"Instances","MinimumCapacityUnits":1,"MaximumCapacityUnits":2,"MaximumOnDemandCapacityUnits":2,"MaximumCoreCapacityUnits":2}}' \ --region "region-name"
Usar métricas de monitoramento para rastrear a utilização do cluster
A partir da versão 7.3.0 do EMR, o Amazon EMR publica quatro novas métricas relacionadas à memória e à CPU virtual. Você pode usá-las para medir a utilização do cluster em todas as estratégias de ajuste de escala. Essas métricas estão disponíveis para qualquer caso de uso, mas você pode usar os detalhes fornecidos aqui para monitorar o Ajuste de escala avançado.
As métricas úteis disponíveis incluem:
YarnContainersUsedMemoryGBSeconds— Quantidade de memória consumida por aplicativos gerenciados pelo YARN.
YarnContainersTotalMemoryGBSeconds— Capacidade total de memória alocada ao YARN dentro do cluster.
YarnNodesUsedVCPUSeconds— Total de segundos de VCPU para cada aplicativo gerenciado pelo YARN.
YarnNodesTotalVCPUSeconds— Total agregado de segundos de VCPU para memória consumida, incluindo a janela de tempo em que o fio não está pronto.
Você pode analisar métricas de recursos usando o Amazon CloudWatch Logs Insights. Os recursos incluem uma linguagem de consulta específica que ajuda a extrair métricas específicas para uso e ajuste de escala de recursos.
A consulta a seguir, que você pode executar no Amazon CloudWatch console, usa matemática métrica para calcular a utilização média da memória (e1) dividindo a soma contínua da memória consumida (e2) pela soma da memória total (e3):
{ "metrics": [ [ { "expression": "e2/e3", "label": "Average Mem Utilization", "id": "e1", "yAxis": "right" } ], [ { "expression": "RUNNING_SUM(m1)", "label": "RunningTotal-YarnContainersUsedMemoryGBSeconds", "id": "e2", "visible": false } ], [ { "expression": "RUNNING_SUM(m2)", "label": "RunningTotal-YarnContainersTotalMemoryGBSeconds", "id": "e3", "visible": false } ], [ "AWS_EMR_ManagedResize", "YarnContainersUsedMemoryGBSeconds", "ACCOUNT_ID", "793684541905", "COMPONENT", "ManagerService", "JOB_FLOW_ID", "cluster-id", { "id": "m1", "label": "YarnContainersUsedMemoryGBSeconds" } ], [ ".", "YarnContainersTotalMemoryGBSeconds", ".", ".", ".", ".", ".", ".", { "id": "m2", "label": "YarnContainersTotalMemoryGBSeconds" } ] ], "view": "timeSeries", "stacked": false, "region": "region", "period": 60, "stat": "Sum", "title": "Memory Utilization" }
Para consultar registros, você pode selecionar CloudWatch no AWS console. Para obter mais informações sobre como escrever consultas para CloudWatch, consulte Análise de dados de log com o CloudWatch Logs Insights no Guia do usuário do Amazon CloudWatch Logs.
A imagem a seguir mostra essas métricas para um cluster de exemplo:
Considerações e limitações
A eficácia das estratégias de ajuste de escala pode variar dependendo das características exclusivas da workload e da configuração do cluster. Recomendamos que você experimente a configuração de ajuste de escala para determinar um valor de índice ideal para o seu caso de uso.
O Ajuste de escala automático do Amazon EMR é particularmente adequado para workloads em lotes. Para workloads de SQL/data warehouse e streaming, recomendamos usar a estratégia padrão de ajuste de escala gerenciado para obter performance ideal.
O Amazon EMR Advanced Scaling não é suportado quando as configurações de rótulos de nós estão habilitadas no cluster. Se as configurações Advanced Scaling e Node Label estiverem habilitadas juntas em um cluster, o comportamento de escalabilidade seria como se a configuração padrão de escalabilidade gerenciada estivesse ativada.
A estratégia de ajuste de escala otimizada para performance permite a execução mais rápida do trabalho, mantendo recursos de alta computação por um período mais longo do que a estratégia padrão de ajuste de escala gerenciado. Esse modo prioriza o aumento rápido da escala vertical para atender a demandas de recursos, resultando na conclusão mais rápida do trabalho. Isso pode resultar em custos mais altos em comparação com a estratégia padrão.
Nos casos em que o cluster já está otimizado e totalmente utilizado, habilitar o Ajuste de escala avançado pode não oferecer benefícios adicionais. Em algumas situações, habilitar o Ajuste de escala avançado pode aumentar os custos, pois as workloads podem durar mais. Nesses casos, recomendamos usar a estratégia padrão de ajuste de escala gerenciado para garantir a alocação ideal de recursos e a eficiência dos custos.
No contexto do Ajuste de escala gerenciado, a ênfase muda para a utilização de recursos ao longo do tempo de execução, à medida que a configuração é ajustada de otimizada para performance [100] para otimizada para utilização [1]. Porém, é importante observar que os resultados podem variar com base na natureza da workload e na topologia do cluster. Para garantir resultados ideais para seu caso de uso, é altamente recomendável testar as estratégias de ajuste de escala com suas workloads para determinar a configuração mais adequada.
O PerformanceUtilizationIndexaceita somente os seguintes valores:
1
25
50
75
100
Quaisquer outros valores enviados resultam em um erro de validação.