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á.
Redimensionar manualmente um cluster da Amazon EMR em execução
Você pode adicionar e remover instâncias de grupos de instâncias principais e de tarefas e frotas de instâncias em um cluster em execução com o AWS Management Console AWS CLI, ou o Amazon EMRAPI. Se um cluster usa grupos de instâncias, você altera explicitamente a contagem de instâncias. Se o cluster usa frotas de instâncias, você pode alterar as unidades de destino para instâncias sob demanda e instâncias spot. A frota de instâncias, em seguida, adiciona e remove instâncias para corresponder ao novo destino. Para obter mais informações, consulte Opções de frotas de instâncias. Os aplicativos podem usar EC2 instâncias Amazon recém-provisionadas para hospedar nós assim que as instâncias estiverem disponíveis. Quando as instâncias são removidas, a Amazon EMR encerra as tarefas de uma forma que não interrompe os trabalhos e protege contra a perda de dados. Para obter mais informações, consulte Terminar na conclusão de tarefas.
Redimensionar um cluster usando o console
Você pode usar o EMR console da Amazon para redimensionar um cluster em execução.
Quando você altera o número de nós, o Status do grupo de instâncias é atualizado. Quando a alteração solicitada estiver concluída, o Status muda para Running (Em execução).
Redimensionar um cluster com o AWS CLI
Você pode usar o AWS CLI para redimensionar um cluster em execução. Você pode aumentar ou diminuir o número de nós de tarefa, e pode aumentar o número de nós core de um cluster em execução. Também é possível encerrar uma instância no grupo de instâncias principal com o AWS CLI ou API o. Isso deve ser feito com cuidado. Desativar uma instância no grupo de instâncias centrais expõe você ao risco de perda de dados, e a instância não é substituída automaticamente.
Além de redimensionar os grupos centrais e de tarefa, você também pode adicionar um ou mais grupos de instâncias de tarefa a um cluster em execução usando a AWS CLI.
Para redimensionar um cluster alterando a contagem de instâncias com o AWS CLI
Você pode adicionar instâncias ao grupo principal ou ao grupo de tarefas e remover instâncias do grupo de tarefas com o AWS CLI modify-instance-groups
subcomando com o InstanceCount
parâmetro. Para adicionar instâncias aos grupos core ou de tarefas, aumente o InstanceCount
. Para reduzir o número de instâncias no grupo de tarefas, diminua o InstanceCount
. Alterar o número de instâncias do grupo de tarefas para 0 remove todas as instâncias, mas não o grupo de instâncias.
-
Para aumentar o número de instâncias no grupo de instâncias de tarefas de 3 para 4, digite o comando a seguir e
ig-31JXXXXXXBTO
substitua pelo ID do grupo de instâncias.aws emr modify-instance-groups --instance-groups InstanceGroupId=
ig-31JXXXXXXBTO
,InstanceCount=4
Para recuperar o
InstanceGroupId
, use o subcomandodescribe-cluster
. A saída é um JSON objeto chamadoCluster
que contém o ID de cada grupo de instâncias. Para usar esse comando, você precisa do ID do cluster (que pode ser recuperado usando o comandoaws emr list-clusters
ou pelo console). Para recuperar o ID do grupo de instâncias, digite o comando a seguir ej-2AXXXXXXGAPLF
substitua-o pelo ID do cluster.aws emr describe-cluster --cluster-id
j-2AXXXXXXGAPLF
Com o AWS CLI, você também pode encerrar uma instância no grupo de instâncias principal com o
--modify-instance-groups
subcomando.Atenção
A especificação de
EC2InstanceIdsToTerminate
deve ser feita com cuidado. As instâncias são encerradas imediatamente, independentemente do status dos aplicativos em execução nelas, e as instâncias não são substituídas automaticamente. Isso é verdadeiro, independentemente da configuração de Scale down behavior (Comportamento da escalabilidade vertical) do cluster. O encerramento de uma instância dessa forma tem o risco de perda de dados e de comportamento imprevisível do cluster.Para encerrar uma instância específica, você precisa do ID do grupo de instâncias (retornado pelo
aws emr describe-cluster --cluster-id
subcomando) e do ID da instância (retornado peloaws emr list-instances --cluster-id
subcomando), digite o comando a seguir,ig-6RXXXXXX07SA
substitua pelo ID do grupo de instâncias ei-f9XXXXf2
substitua pelo ID da instância.aws emr modify-instance-groups --instance-groups InstanceGroupId=
ig-6RXXXXXX07SA
,EC2InstanceIdsToTerminate=i-f9XXXXf2
Para obter mais informações sobre o uso dos EMR comandos da Amazon no AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.
Para redimensionar um cluster adicionando grupos de instâncias de tarefas com o AWS CLI
Com o AWS CLI, você pode adicionar de 1 a 48 grupos de instâncias de tarefas a um cluster com o --add-instance-groups
subcomando. Os grupos de instâncias de tarefa só podem ser adicionados a um cluster contendo um grupo de instâncias primárias e um grupo de instâncias centrais. Ao usar o AWS CLI, você pode adicionar até cinco grupos de instâncias de tarefas sempre que usar o --add-instance-groups
subcomando.
-
Para adicionar um único grupo de instâncias de tarefas a um cluster, digite o comando a seguir e
j-JXBXXXXXX37R
substitua pelo ID do cluster.aws emr add-instance-groups --cluster-id
j-JXBXXXXXX37R
--instance-groups InstanceCount=6
,InstanceGroupType=task
,InstanceType=m5.xlarge
-
Para adicionar vários grupos de instâncias de tarefas a um cluster, digite o comando a seguir e
j-JXBXXXXXX37R
substitua pelo ID do cluster. Você pode adicionar até cinco grupos de instâncias de tarefas em um único comando.aws emr add-instance-groups --cluster-id
j-JXBXXXXXX37R
--instance-groups InstanceCount=6
,InstanceGroupType=task
,InstanceType=m5.xlarge
InstanceCount=10
,InstanceGroupType=task
,InstanceType=m5.xlarge
Para obter mais informações sobre o uso dos EMR comandos da Amazon no AWS CLI, consultehttps://docs.aws.amazon.com/cli/latest/reference/emr.
Interromper um redimensionamento
Usando a EMR versão 4.1.0 ou posterior da Amazon, você pode emitir um redimensionamento em meio a uma operação de redimensionamento existente. Além disso, você pode interromper uma solicitação de redimensionamento enviada anteriormente ou enviar uma nova solicitação para substituir uma solicitação anterior, antes mesmo que ela seja concluída. Você também pode interromper um redimensionamento existente no console ou com a ModifyInstanceGroups
API chamada com a contagem atual como a contagem de destino do cluster.
A imagem a seguir mostra um grupo de instâncias de tarefas que está sendo redimensionado mas pode ser interrompido pela opção de Stop (Interromper).
Para interromper um redimensionamento com o AWS CLI
Você pode usar o AWS CLI para interromper o redimensionamento com o modify-instance-groups
subcomando. Suponha que você tem seis instâncias em um grupo de instâncias e deseja aumentar este número para 10. E mais tarde você decide cancelar essa solicitação:
-
A solicitação inicial:
aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-
myInstanceGroupId
,InstanceCount=10A segunda solicitação para interromper a primeira solicitação:
aws emr modify-instance-groups --instance-groups InstanceGroupId=ig-
myInstanceGroupId
,InstanceCount=6
nota
Como esse processo é assíncrono, você pode ver a contagem de instâncias mudar em relação às API solicitações anteriores antes que as solicitações subsequentes sejam atendidas. Em caso de redução, se você tiver um trabalho em execução nos nós, é possível que o grupo de instâncias não seja reduzido até que os nós tenham concluído seu trabalho.
Estado suspenso
Um grupo de instâncias entra em estado suspenso se encontrar muitos erros durante a tentativa de iniciar os novos nós do cluster. Por exemplo, se novos nós falharem ao realizar ações de bootstrap, o grupo de instâncias entrará em um SUSPENDEDestado, em vez de provisionar continuamente novos nós. Depois de resolver o problema básico, redefina o número desejado de nós no grupo de instâncias do cluster e, em seguida, o grupo de instâncias reiniciará a alocação de nós. A modificação de um grupo de instâncias instrui EMR a Amazon a tentar provisionar nós novamente. Os nós em execução não são reiniciados ou encerrados.
No AWS CLI, o list-instances
subcomando retorna todas as instâncias e seus estados, assim como o describe-cluster
subcomando. Se a Amazon EMR detectar uma falha em um grupo de instâncias, ela mudará o estado do grupo paraSUSPENDED
.
Para redefinir um cluster em um SUSPENDED estado com o AWS CLI
Digite o subcomando describe-cluster
com o parâmetro --cluster-id
para visualizar o estado das instâncias no cluster.
-
Para ver informações sobre todas as instâncias e grupos de instâncias em um cluster, digite o comando a seguir e
j-3KVXXXXXXY7UG
substitua pelo ID do cluster.aws emr describe-cluster --cluster-id
j-3KVXXXXXXY7UG
A saída exibe informações sobre os grupos de instâncias e o estado das instâncias:
{ "Cluster": { "Status": { "Timeline": { "ReadyDateTime": 1413187781.245, "CreationDateTime": 1413187405.356 }, "State": "WAITING", "StateChangeReason": { "Message": "Waiting after step completed" } }, "Ec2InstanceAttributes": { "Ec2AvailabilityZone": "us-west-2b" }, "Name": "Development Cluster", "Tags": [], "TerminationProtected": false, "RunningAmiVersion": "3.2.1", "NormalizedInstanceHours": 16, "InstanceGroups": [ { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187775.749, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "MASTER", "InstanceGroupType": "MASTER", "InstanceType": "m5.xlarge", "Id": "ig-3ETXXXXXXFYV8", "Market": "ON_DEMAND", "RunningInstanceCount": 1 }, { "RequestedInstanceCount": 1, "Status": { "Timeline": { "ReadyDateTime": 1413187781.301, "CreationDateTime": 1413187405.357 }, "State": "RUNNING", "StateChangeReason": { "Message": "" } }, "Name": "CORE", "InstanceGroupType": "CORE", "InstanceType": "m5.xlarge", "Id": "ig-3SUXXXXXXQ9ZM", "Market": "ON_DEMAND", "RunningInstanceCount": 1 } ... }
Para exibir as informações sobre um grupo de instâncias específico, digite o subcomando
list-instances
com os parâmetros--cluster-id
e--instance-group-types
. Você pode visualizar as informações para grupos primários, centrais ou de tarefa.aws emr list-instances --cluster-id
j-3KVXXXXXXY7UG
--instance-group-types"CORE"
Use o subcomando
modify-instance-groups
com o parâmetro--instance-groups
para redefinir um cluster no estadoSUSPENDED
. O ID do grupo de instâncias é obtido pelo subcomandodescribe-cluster
.aws emr modify-instance-groups --instance-groups InstanceGroupId=
ig-3SUXXXXXXQ9ZM
,InstanceCount=3
Considerações ao reduzir o tamanho do cluster
Se você optar por reduzir o tamanho de um cluster em execução, considere o seguinte EMR comportamento e as melhores práticas da Amazon:
-
Para reduzir o impacto nas tarefas em andamento, a Amazon seleciona de EMR forma inteligente as instâncias a serem removidas. Para obter mais informações sobre o comportamento de redução da escala de clusters, consulte Terminar na conclusão de tarefas o Amazon EMR Management Guide.
-
Quando você reduz o tamanho de um cluster, a Amazon EMR copia os dados das instâncias que ela remove para as instâncias que permanecem. Verifique se há capacidade de armazenamento suficiente para esses dados nas instâncias que permanecem no grupo.
-
A Amazon EMR tenta HDFS descomissionar as instâncias do grupo. Antes de reduzir o tamanho de um cluster, recomendamos que você minimize a E/S de HDFS gravação.
-
Para obter o controle mais granular ao reduzir o tamanho de um cluster, é possível visualizar o cluster no console e navegar até a guia Instâncias. Selecione o ID do grupo de instâncias que você deseja redimensionar. Em seguida, use a opção Terminar para as instâncias específicas que você deseja remover.