Como atualizar todos os nós do Amazon EMR após a fase de bootstrap?

2 minuto de leitura
0

Quero atualizar todos os nós em um cluster do Amazon EMR após a conclusão do estado BOOTSTRAPPING.

Descrição breve

A fase de bootstrap ocorre antes de o Amazon EMR instalar e configurar aplicações como o Apache Hadoop e o Apache Spark. Para fazer alterações adicionais em todos os nós do cluster após o Amazon EMR instalar e configurar as aplicações, execute uma ação de bootstrap que baixe e execute outro script.

Resolução

1.    Crie um script bash que especifique as alterações que você deseja fazer em todos os nós do cluster. Consulte os exemplos a seguir.

Exemplo 1: Esse script espera que um arquivo de configuração ( /etc/hadoop/conf/hadoop-env.sh) fique disponível e, em seguida, executa trabalhos adicionais.

#!/bin/bash
#
# This is an example of script_b.sh
#
while [ ! -f /etc/hadoop/conf/hadoop-env.sh ]
do
  sleep 1
done
#
# Now the file is available, do your work here
#

exit 0

Exemplo 2: Esse script espera que o cluster do EMR entre no estado WAITING antes de implementar uma personalização adicional. Isso permite que o cluster do EMR conclua a instalação e a configuração do Hadoop e de outras aplicações.

#!/bin/bash
#
# This is an example of script_b.sh
#
# Wait for EMR provisioning to become successful.
#
while [[ $(sed '/localInstance {/{:1; /}/!{N; b1}; /nodeProvision/p}; d' /emr/instance-controller/lib/info/job-flow-state.txt | sed '/nodeProvisionCheckinRecord {/{:1; /}/!{N; b1}; /status/p}; d' | awk '/SUCCESSFUL/' | xargs) != "status: SUCCESSFUL" ]];
do
  sleep 1
done
#
# Now the EMR cluster is ready. Do your work here.
#

exit 0

2.    Inicie um cluster do EMR e adicione uma ação de bootstrap semelhante à seguinte. Esse script baixa o script que você criou na etapa anterior (script_b.sh) e o executa em segundo plano.

#!/bin/bash
aws s3 cp s3://doc-example-bucket/script_b.sh .
chmod +x script_b.sh
nohup ./script_b.sh &>/dev/null &

Informações relacionadas

Noções básicas sobre o ciclo de vida do cluster

AWS OFICIAL
AWS OFICIALAtualizada há 2 anos