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á.
Planejamento e configuração de frotas de instâncias para o cluster do Amazon EMR
nota
A configuração de frotas de instância só está disponível em versões do Amazon EMR 4.8.0 e posteriores, exceto versões 5.0.0 e 5.0.3.
A configuração da frota de instâncias para clusters do Amazon EMR permite selecionar uma grande variedade de opções de provisionamento para instâncias do Amazon EC2 e ajuda a desenvolver uma estratégia de recursos flexível e elástica para cada tipo de nó do cluster.
Em uma configuração de frota de instâncias, você especifica uma capacidade alvo para On-DemandInstâncias e Instâncias Spot em cada frota. Quando o cluster é iniciado, o Amazon EMR provisiona instâncias até que os destinos sejam atendidos. Quando o Amazon EC2 recupera uma instância spot em um cluster em execução por causa de um aumento de preço ou falha de instância, o Amazon EMR tenta substituir a instância por qualquer um dos tipos de instância especificados. Isso facilita recuperar a capacidade durante um pico nos preços Spot.
Você também pode selecionar várias sub-redes em 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. Se o Amazon EMR detectar um evento de AWS grande escala em uma ou mais zonas de disponibilidade, o Amazon EMR tentará automaticamente direcionar o tráfego para fora das zonas de disponibilidade afetadas e tentará lançar novos clusters que você cria em zonas de disponibilidade alternativas de acordo com suas seleções. A seleção da zona de disponibilidade do cluster ocorre somente na criação do cluster. Os nós de cluster já existentes não são reiniciados automaticamente em uma nova zona de disponibilidade em caso de interrupção na zona de disponibilidade.
Considerações para trabalhar com frotas de instâncias
Considere os itens a seguir ao usar as frotas de instâncias com o Amazon EMR.
-
Você pode ter apenas uma frota de instância por tipo de nó (primário, central, de tarefa). Você pode especificar até cinco tipos de instância do Amazon EC2 para cada frota no Console de gerenciamento da AWS (ou um máximo de 30 tipos por frota de instância ao criar um cluster usando a API do AWS CLI Amazon EMR e uma). Estratégia de alocação para frotas de instâncias
-
O Amazon EMR escolhe qualquer um ou todos os tipos de instância do Amazon EC2 especificados para provisionar com opções spot e de compra. On-Demand
-
Você pode estabelecer capacidades alvo para Spot e On-Demand Instâncias para a frota principal e a frota de tarefas. Use vCPU ou uma unidade genérica atribuída a cada instância do Amazon EC2 que é considerada para os destinos. O Amazon EMR provisiona instâncias até que cada capacidade de destino seja totalmente preenchida. Para a frota primária, o destino é sempre um.
-
Você pode escolher uma sub-rede (zona de disponibilidade) ou um intervalo. Se você escolher um intervalo, o Amazon EMR provisionará a capacidade na zona de disponibilidade mais apropriada.
-
Quando você especificar uma capacidade alvo para instâncias Spot:
-
Para cada tipo de instância, especifique um preço spot máximo. O Amazon EMR provisionará instâncias spot se o preço estiver abaixo do preço spot máximo. Você paga o preço spot e não necessariamente o preço spot máximo.
-
Para cada frota, defina um tempo limite para o provisionamento de instâncias Spot. Se o Amazon EMR não puder provisionar a capacidade spot, você poderá encerrar o cluster ou mudar para a capacidade de provisionamentoOn-Demand . Isso se aplica somente ao provisionamento de clusters, não ao redimensionamento deles. Se o período de tempo limite terminar durante o processo de redimensionamento do cluster, as solicitações spot não provisionadas serão anuladas sem serem transferidas para a capacidade. On-Demand
-
-
Para cada frota, é possível especificar uma das seguintes estratégias de alocação para instâncias spot: otimizada para preço e capacidade, otimizada para capacidade, otimizada para capacidade priorizada, menor preço ou diversificada em todos os grupos.
-
Para cada frota, você pode aplicar as seguintes estratégias de alocação para suas On-Demand Instâncias: a estratégia de menor preço ou a estratégia priorizada.
-
Para cada frota com On-Demand Instâncias, você pode optar por aplicar opções de reserva de capacidade.
-
Se você usa a estratégia de alocação em frotas de instâncias, as seguintes considerações se aplicam ao escolher sub-redes para o cluster do EMR:
Quando o Amazon EMR provisiona um cluster com uma frota de tarefas, ele filtra as sub-redes que não têm endereços IP disponíveis suficientes para provisionar todas as instâncias do cluster do EMR solicitado. Isso inclui os endereços IP necessários para as frotas de instâncias primárias, centrais e de tarefas durante a inicialização do cluster. Em seguida, o Amazon EMR aproveita a estratégia de alocação para determinar o grupo de instâncias, com base no tipo de instância e nas sub-redes restantes com endereços IP suficientes, para iniciar o cluster.
Se o Amazon EMR não puder iniciar o cluster inteiro devido à insuficiência de endereços IP disponíveis, ele tentará identificar sub-redes com endereços IP livres suficientes para iniciar as frotas de instâncias essenciais (centrais e primárias). Nesses cenários, sua frota de instâncias de tarefas entrará em estado suspenso, em vez de encerrar o cluster com um erro.
Se nenhuma das sub-redes especificadas contiver endereços IP suficientes para provisionar as frotas de instância essenciais centrais e primárias, a inicialização do cluster falhará com um VALIDATION_ERROR. Isso aciona um evento de encerramento do cluster de gravidade CRÍTICA, notificando você de que o cluster não pode ser iniciado. Para evitar esse problema, recomenda-se aumentar o número de endereços IP das sub-redes.
Se você executa o Amazon EMR versão emr-7.7.0 e superior e usa a estratégia de alocação para frotas de instâncias, pode escalar o cluster para até 4.000 instâncias do EC2 e 14.000 volumes do EBS por frota de instâncias. Para versões de lançamento abaixo de emr-7.7.0, o cluster pode ser ampliado somente para 2.000 instâncias do EC2 e 7.000 volumes do EBS por frota de instâncias.
-
Ao iniciar On-Demand instâncias, você pode usar reservas de capacidade abertas ou direcionadas para nós primários, principais e de tarefas em suas contas. Você pode ver capacidade insuficiente com On-Demand instâncias com estratégia de alocação para frotas de instâncias. Recomendamos que você especifique vários tipos de instância para diversificar e reduzir a chance de ter capacidade insuficiente. Para obter mais informações, consulte Uso de reservas de capacidade com frotas de instância no Amazon EMR.
Opções de frotas de instâncias
Use as seguintes diretrizes para compreender as opções de frota de instância.
Tópicos
Definir capacidades de destino
Especifique as capacidades alvo que deseja para a frota de núcleo e de tarefa. Quando você faz isso, isso determina o número de On-Demand instâncias e instâncias spot que o Amazon EMR provisiona. Quando você especifica uma instância, você decide o quanto cada instância é considerada para o destino. Quando uma On-Demand instância é provisionada, ela é contabilizada para a On-Demand meta. O mesmo aplica-se para instâncias spot. Ao contrário de frotas centrais e de tarefa, a frota primária é sempre uma instância. Portanto, a capacidade de destino desta frota é sempre um.
Ao usar o console, as vCPUs do tipo de instância do Amazon EC2 são usadas como a contagem para capacidades de destino por padrão. Você pode alterar isso para Unidades genéricas e, em seguida, especificar a contagem para cada tipo de instância do EC2. Ao usar o AWS CLI, você atribui manualmente unidades genéricas para cada tipo de instância.
Importante
Quando você escolhe um tipo de instância usando o Console de gerenciamento da AWS, o número de vCPUs mostrado para cada tipo de instância é o número de vcores YARN para esse tipo de instância, não o número de vCPUs EC2 para esse tipo de instância. Para obter mais informações sobre o número de vCPUs para o seu tipo de instância, consulte os tipos de instância do Amazon EC2
Até cinco tipos de instância do Amazon EC2 especificados para cada frota. Se você usa um Estratégia de alocação para frotas de instâncias e cria um cluster usando a API do Amazon EMR AWS CLI ou a API do Amazon EMR, você pode especificar até 30 tipos de instância EC2 por frota de instâncias. O Amazon EMR escolhe qualquer combinação desses tipos de instância do EC2 para preencher as capacidades de destino. Como o Amazon EMR deseja atender a capacidade de destino completamente, pode haver um excedente. Por exemplo, se houver duas unidades não atendidas e o Amazon EMR puder apenas provisionar uma instância com uma contagem de cinco unidades, a instância ainda é provisionada, o que significa que a capacidade de destino será excedida por três unidades.
Se você reduzir a capacidade pretendida para redimensionar um cluster em execução, o Amazon EMR tentará concluir as tarefas de aplicação e encerrará as instâncias para atender o novo destino. Para obter mais informações, consulte Terminar na conclusão de tarefas.
Opções de inicialização
Para instâncias spot, você pode especificar Preço spot máximo para cada tipo de instância da frota. Você pode definir esse preço como uma porcentagem do On-Demand preço ou como um valor específico em dólares. O Amazon EMR provisiona instâncias spot caso o preço spot atual em uma zona de disponibilidade esteja abaixo do preço spot máximo. Você paga o preço spot e não necessariamente o preço spot máximo.
nota
As instâncias spot com duração definida (também conhecidas como blocos spot) não estarão mais disponíveis para novos clientes a partir de 1.º de julho de 2021. Aos clientes que utilizaram o recurso anteriormente, continuaremos a oferecer suporte a instâncias spot com duração definida até 31 de dezembro de 2022.
Disponível no Amazon EMR 5.12.1 e versões posteriores, você tem a opção de lançar frotas spot e de On-Demand instância com alocação de capacidade otimizada. Essa opção de estratégia de alocação pode ser definida na antiga Console de gerenciamento da AWS ou usando a APIRunJobFlow. Não é possível personalizar a estratégia de alocação no novo console. Usar a opção de estratégia de alocação requer outras permissões de perfil de serviço. Se você usar o perfil de serviço padrão do Amazon EMR e a política gerenciada (EMR_DefaultRole e AmazonEMRServicePolicy_v2) para o cluster, as permissões para a opção de estratégia de alocação já estarão incluídas. Caso não esteja usando o perfil de serviço e a política gerenciada padrão do Amazon EMR, você deverá adicioná-las para usar essa opção. Consulte Perfil de serviço para Amazon EMR (perfil do EMR).
Para obter mais informações sobre instâncias spot, consulte Instâncias spot no Guia do usuário do Amazon EC2. Para obter mais informações sobre On-Demand instâncias, consulte On-DemandInstâncias no Guia do usuário do Amazon EC2.
Se você optar On-Demand por lançar frotas de instâncias com a estratégia de alocação de menor preço, terá a opção de usar reservas de capacidade. As opções de reserva de capacidade podem ser definidas usando a API RunJobFlow do Amazon EMR. As reservas de capacidade exigem outras permissões de perfil de serviço que você deve adicionar para usar essas opções. Consulte Permissões da estratégia de alocação. Não é possível personalizar as reservas de capacidade no novo console.
Várias opções de sub-rede (zonas de disponibilidade)
Ao usar frotas de instância, você pode especificar várias sub-redes do Amazon EC2 em uma VPC, cada uma correspondendo a uma zona de disponibilidade diferente. Se você usaEC2-Classic, você especifica as zonas de disponibilidade explicitamente. O Amazon EMR identifica a melhor zona de disponibilidade para iniciar instâncias de acordo com suas especificações de frota. Instâncias são sempre provisionadas em apenas uma Zona de disponibilidade. Você pode selecionar sub-redes privadas ou públicas, mas não pode combinar as duas. Além disso, as sub-redes que você especificar devem estar na mesma VPC.
Configuração do nó principal
Como a frota de instância primária é somente uma única instância, sua configuração é um pouco diferente de frotas de instâncias centrais e de tarefa. Você seleciona apenas uma On-Demand ou uma Spot para a frota de instâncias primárias porque ela consiste em apenas uma instância. Se você usar o console para criar a frota de instâncias, a capacidade alvo para a opção de compra que você selecionar será definida como 1. Se você usar o AWS CLI, sempre TargetOnDemandCapacity defina um TargetSpotCapacity ou como 1, conforme apropriado. Você ainda pode escolher até cinco tipos de instância para a frota de instâncias primárias (ou no máximo 30 ao usar a opção de estratégia de alocação On-Demand ou Instâncias Spot). No entanto, ao contrário de frotas de instâncias centrais e de tarefa, nas quais o Amazon EMR pode provisionar várias instâncias de tipos diferentes, o Amazon EMR seleciona um único tipo de instância a ser provisionado para a frota de instâncias primária.
Estratégia de alocação para frotas de instâncias
Com as versões 5.12.1 e posteriores do Amazon EMR, você pode usar a opção de estratégia de alocação com instâncias spot para cada On-Demand nó do cluster. Ao criar um cluster usando a AWS CLI, a API do Amazon EMR ou o console do Amazon EMR com uma estratégia de alocação, você pode especificar até 30 tipos de instância do Amazon EC2 por frota. Com a configuração padrão da frota de instâncias de cluster do Amazon EMR, é possível ter até cinco tipos de instância por frota. É recomendável usar a opção de estratégia de alocação para obter provisionamento mais rápido do cluster, alocação mais precisa de instâncias spot e menos interrupções de instâncias spot.
Tópicos
Estratégia de alocação com instâncias On-Demand
As seguintes estratégias de alocação estão disponíveis para suas On-Demand instâncias:
lowest-price(padrão)A estratégia de alocação de menor preço lança On-Demand instâncias do pool de menor preço que tem capacidade disponível. Se o pool de menor preço não tiver capacidade disponível, as On-Demand Instâncias vêm do próximo pool de menor preço com capacidade disponível.
prioritizedA estratégia de alocação priorizada permite especificar um valor de prioridade para cada tipo de instância da frota de instâncias. O Amazon EMR lança suas On-Demand instâncias que têm a maior prioridade. Se você usar essa estratégia, deverá configurar a prioridade para pelo menos um tipo de instância. Se você não configurar o valor de prioridade para um tipo de instância, o Amazon EMR atribuirá a prioridade mais baixa a esse tipo de instância. Cada frota de instâncias (primária, central ou de tarefa) em um cluster pode ter um valor de prioridade diferente para um determinado tipo de instância.
nota
Se você usa a estratégia de alocação spot com capacidade otimizada e priorizada, o Amazon EMR aplica as mesmas prioridades às On-Demand suas instâncias e instâncias spot quando você define prioridades.
Estratégia de alocação com instâncias spot
Em Instâncias spot, você escolher uma destas estratégias de alocação:
price-capacity-optimized(recomendado)-
A estratégia de alocação otimizada para preço-capacidade inicia instâncias spot com base nos grupos de instâncias spot que têm a maior capacidade disponível e o menor preço para o número de instâncias que estão sendo iniciadas. Como resultado, a estratégia otimizada para preço e capacidade normalmente tem uma chance maior de obter capacidade spot e oferece taxas de interrupção mais baixas. Essa é a estratégia padrão para as versões 6.10.0 e posteriores do Amazon EMR.
capacity-optimized-
A estratégia de alocação otimizada para capacidade inicia instâncias spot nos grupos mais disponíveis com a menor chance de interrupção no curto prazo. Essa é uma boa opção para workloads que podem ter um custo maior de interrupção associado ao trabalho que é reiniciado. Essa é a estratégia padrão para as versões 6.9.0 e anteriores do Amazon EMR.
capacity-optimized-prioritized-
A estratégia de alocação de prioridade otimizada para capacidade permite especificar um valor de prioridade para cada tipo de instância na frota de instâncias. O Amazon EMR otimiza a capacidade primeiro, mas se esforça em honrar as prioridades de tipo de instância, como se a prioridade não afetasse significativamente a capacidade da frota de provisionar a capacidade ideal. Recomendamos essa opção se você tiver workloads que precisam ter uma quantidade mínima de interrupção e de determinados tipos de instância. Se você usar essa estratégia, deverá configurar a prioridade para pelo menos um tipo de instância. Se você não configurar uma prioridade para nenhum tipo de instância, o Amazon EMR atribuirá o menor valor de prioridade a esse tipo de instância. Cada frota de instâncias (primária, central ou de tarefa) em um cluster pode ter um valor de prioridade diferente para um determinado tipo de instância.
nota
Se você usa a estratégia de On-Demand alocação priorizada, o Amazon EMR aplica o mesmo valor de prioridade às suas instâncias On-Demand e às instâncias spot quando você define prioridades.
diversified-
Com a estratégia de alocação diversificada, o Amazon EC2 distribui instâncias spot em todos os grupos de capacidade spot.
lowest-price-
A estratégia de alocação de menor preço inicia instâncias spot pelo grupo de menor preço que tenha capacidade disponível. Se o grupo com menor preço não tiver capacidade disponível, as instâncias spot virão do próximo grupo com menor preço que tiver capacidade disponível. Se um grupo esgotar capacidade antes de atender à capacidade solicitada, a frota do Amazon EC2 utilizará o próximo grupo com preço mais baixo para continuar atendendo à solicitação. Para garantir que a capacidade desejada seja atendida, é possível receber instâncias spot de vários grupos. Como essa estratégia considera apenas o preço da instância e não considera a disponibilidade de capacidade, ela pode resultar em altas taxas de interrupção.
Permissões da estratégia de alocação
A opção de estratégia de alocação requer várias permissões do IAM que são incluídas automaticamente no perfil de serviço padrão do Amazon EMR e na política gerenciada do Amazon EMR (EMR_DefaultRole e AmazonEMRServicePolicy_v2). Ao usar um perfil de serviço personalizado ou uma política gerenciada para o cluster, você deverá adicionar essas permissões antes de criar o cluster. Para obter mais informações, consulte Permissões da estratégia de alocação.
As reservas On-Demand de capacidade opcionais (ODCRs) estão disponíveis quando você usa a opção de estratégia de On-Demand alocação. Com as opções de reserva de capacidade, você pode especificar uma preferência para usar primeiro a capacidade reservada para clusters do Amazon EMR. Use-as para garantir que suas workloads críticas utilizarão a capacidade que você já reservou usando ODCRs abertos ou direcionados. Para workloads não essenciais, as preferências de reserva de capacidade permitem especificar se a capacidade reservada deverá ser consumida.
As reservas de capacidade só podem ser usadas por instâncias que correspondam a seus atributos (tipo de instância, plataforma e zona de disponibilidade). Por padrão, as reservas de capacidade aberta são usadas automaticamente pelo Amazon EMR ao provisionar On-Demand instâncias que correspondam aos atributos da instância. Se você não tiver nenhuma instância em execução que corresponda aos atributos das reservas de capacidade, elas permanecerão não utilizadas até você iniciar uma instância com atributos correspondentes. Se você não quiser usar nenhuma reserva de capacidade ao iniciar o cluster, defina a preferência de reserva de capacidade como nenhuma nas opções de inicialização.
No entanto, também é possível destinar uma reserva de capacidade para workloads específicas. Isso permite que você controle explicitamente quais instâncias têm permissão para executar na capacidade reservada. Para obter mais informações sobre reservas On-Demand de capacidade, consulteUso de reservas de capacidade com frotas de instância no Amazon EMR.
Permissões do IAM necessárias para uma estratégia de alocação
Você Perfil de serviço para Amazon EMR (perfil do EMR) precisa de permissões adicionais para criar um cluster que use a opção de estratégia de alocação para frotas On-Demand de instâncias spot.
Incluímos automaticamente essas permissões no perfil de serviço padrão do Amazon EMR EMR_DefaultRole e na política gerenciada do Amazon EMR AmazonEMRServicePolicy_v2.
Ao usar um perfil de serviço personalizado ou uma política gerenciada para o cluster, você deverá adicionar as seguintes permissões:
As permissões de perfil de serviço a seguir são necessárias para criar um cluster que usa reservas de capacidade abertas ou direcionadas. É necessário incluir essas permissões além das permissões necessárias para usar a opção de estratégia de alocação.
exemplo Documento de política para reservas de capacidade de perfil de serviço
Para usar reservas de capacidade aberta, é necessário incluir as permissões adicionais a seguir.
exemplo
Para usar reservas de capacidade direcionada, é necessário incluir as permissões adicionais a seguir.
Configurar frotas de instâncias para o cluster
Exemplos: criar um cluster com a configuração de frotas de instâncias
Os exemplos a seguir demonstram comandos create-cluster com uma variedade de opções que você pode combinar.
nota
Se você não criou o perfil de serviço do Amazon EMR padrão e o perfil de instância do EC2, use aws emr create-default-roles para criá-los antes de usar o comando create-cluster.
exemplo Exemplo: On-Demand primário, On-Demand núcleo com tipo de instância única, VPC padrão
aws emr create-cluster --release-labelemr-5.3.1--service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}']
exemplo Exemplo: principal spot, central spot com tipo de instância única, VPC padrão
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}'] \ InstanceFleetType=CORE,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
exemplo Exemplo: núcleo On-Demand primário misto com tipo de instância única, sub-rede EC2 única
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=2,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=2}']
exemplo Exemplo: On-Demand primário, núcleo spot com vários tipos de instância ponderada, tempo limite para spot, intervalo de sub-redes EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetSpotCapacity=11,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'}
exemplo Exemplo: núcleo On-Demand primário, misto e tarefa com vários tipos de instância ponderada, tempo limite para instâncias spot principais, variedade de sub-redes EC2
aws emr create-cluster --release-label emr-5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole,SubnetIds=['subnet-ab12345c','subnet-de67890f'] \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,InstanceTypeConfigs=['{InstanceType=m5.xlarge}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=8,TargetSpotCapacity=6,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}',\ '{InstanceType=m4.2xlarge,BidPrice=0.9,WeightedCapacity=5}'],\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=120,TimeoutAction=SWITCH_TO_ON_DEMAND}'} \ InstanceFleetType=TASK,TargetOnDemandCapacity=3,TargetSpotCapacity=3,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,WeightedCapacity=3}']
exemplo Exemplo: primária spot, que não é central nem de tarefa, configuração do Amazon EBS, VPC padrão
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=60,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5,\ EbsConfiguration={EbsOptimized=true,EbsBlockDeviceConfigs=[{VolumeSpecification={VolumeType=gp2,\ SizeIn GB=100}},{VolumeSpecification={VolumeType=io1,SizeInGB=100,Iop s=100},VolumesPerInstance=4}]}}']
exemplo Exemplo: múltiplas AMIs personalizadas, múltiplos tipos de instância, primária sob demanda, central sob demanda
aws emr create-cluster --release-label Amazon EMR 5.3.1 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets \ InstanceFleetType=MASTER,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}'] \ InstanceFleetType=CORE,TargetOnDemandCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456},{InstanceType=m6g.xlarge, CustomAmiId=ami-234567}']
exemplo Exemplo: adicionar um nó de tarefa a um cluster em execução com múltiplos tipos de instância e múltiplas AMIs personalizadas
aws emr add-instance-fleet --cluster-id j-123456 --release-label Amazon EMR 5.3.1 \ --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleet \ InstanceFleetType=Task,TargetSpotCapacity=1,\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,CustomAmiId=ami-123456}',\ '{InstanceType=m6g.xlarge,CustomAmiId=ami-234567}']
exemplo Exemplo: usar um arquivo de configuração JSON
Você pode configurar parâmetros de frota de instância em um arquivo JSON e fazer referência a esse arquivo JSON como o único parâmetro para frotas de instâncias. Por exemplo, o seguinte comando referencia um arquivo de configuração JSON, :my-fleet-config.json
aws emr create-cluster --release-label emr-5.30.0 --service-role EMR_DefaultRole \ --ec2-attributes InstanceProfile=EMR_EC2_DefaultRole \ --instance-fleets file://my-fleet-config.json
O my-fleet-config.json arquivo especifica frotas de instâncias primárias, principais e de tarefas, conforme mostrado no exemplo a seguir. A frota de instâncias principais usa um preço spot máximo (BidPrice) como uma porcentagem de On-Demand, enquanto as frotas de tarefas e instâncias primárias usam um preço spot máximo (BidPriceAsPercentageofOnDemandPrice) como uma string em USD.
[ { "Name": "Masterfleet", "InstanceFleetType": "MASTER", "TargetSpotCapacity": 1, "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "SWITCH_TO_ON_DEMAND" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] }, { "Name": "Corefleet", "InstanceFleetType": "CORE", "TargetSpotCapacity": 1, "TargetOnDemandCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "UsageStrategy": "use-capacity-reservations-first", "CapacityReservationResourceGroupArn": "String" } }, "SpotSpecification": { "AllocationStrategy": "capacity-optimized", "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPriceAsPercentageOfOnDemandPrice": 100 } ] }, { "Name": "Taskfleet", "InstanceFleetType": "TASK", "TargetSpotCapacity": 1, "LaunchSpecifications": { "OnDemandSpecification": { "AllocationStrategy": "lowest-price", "CapacityReservationOptions": { "CapacityReservationPreference": "none" } }, "SpotSpecification": { "TimeoutDurationMinutes": 120, "TimeoutAction": "TERMINATE_CLUSTER" } }, "InstanceTypeConfigs": [ { "InstanceType": "m5.xlarge", "BidPrice": "0.89" } ] } ]
Modificar capacidades de destino para uma frota de instâncias
Use o comando modify-instance-fleet para especificar novas capacidades alvo para uma frota de instâncias. Você deve especificar o ID de cluster e o ID de frota de instância. Use o comando list-instance-fleets para recuperar IDs de frotas de instâncias.
aws emr modify-instance-fleet --cluster-id<cluster-id>\ --instance-fleet \ InstanceFleetId='<instance-fleet-id>',TargetOnDemandCapacity=1,TargetSpotCapacity=1
Adicionar uma frota de instâncias de tarefa a um cluster
Se um cluster tiver apenas frotas de instâncias primárias e centrais, você poderá usar o comando add-instance-fleet para adicionar uma frota de instâncias de tarefa. Isso só pode ser usado para adicionar frotas de instância de tarefa.
aws emr add-instance-fleet --cluster-id<cluster-id>--instance-fleet \ InstanceFleetType=TASK,TargetSpotCapacity=1,\ LaunchSpecifications={SpotSpecification='{TimeoutDurationMinutes=20,TimeoutAction=TERMINATE_CLUSTER}'},\ InstanceTypeConfigs=['{InstanceType=m5.xlarge,BidPrice=0.5}']
Obter detalhes da configuração de frotas de instâncias em um cluster
Use o comando list-instance-fleets para obter detalhes de configuração das frotas de instâncias em um cluster. O comando utiliza um ID de cluster como entrada. O exemplo a seguir demonstra o comando e sua saída para um cluster que contém um grupo de instâncias de tarefa primárias e um grupo de instâncias de tarefa centrais. Para obter a sintaxe completa da resposta, consulte a ListInstanceFleetsReferência da API do Amazon EMR.
list-instance-fleets --cluster-id<cluster-id>
{ "InstanceFleets": [ { "Status": { "Timeline": { "ReadyDateTime": 1488759094.637, "CreationDateTime": 1488758719.817 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 6, "Name": "CORE", "InstanceFleetType": "CORE", "LaunchSpecifications": { "SpotSpecification": { "TimeoutDurationMinutes": 60, "TimeoutAction": "TERMINATE_CLUSTER" } }, "ProvisionedOnDemandCapacity": 2, "InstanceTypeSpecifications": [ { "BidPrice": "0.5", "InstanceType": "m5.xlarge", "WeightedCapacity": 2 } ], "Id": "if-1ABC2DEFGHIJ3" }, { "Status": { "Timeline": { "ReadyDateTime": 1488759058.598, "CreationDateTime": 1488758719.811 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "ProvisionedSpotCapacity": 0, "Name": "MASTER", "InstanceFleetType": "MASTER", "ProvisionedOnDemandCapacity": 1, "InstanceTypeSpecifications": [ { "BidPriceAsPercentageOfOnDemandPrice": 100.0, "InstanceType": "m5.xlarge", "WeightedCapacity": 1 } ], "Id": "if-2ABC4DEFGHIJ4" } ] }