Wie aktualisiere ich alle Amazon EMR-Knoten nach der Bootstrap-Phase?

Lesedauer: 2 Minute
0

Ich möchte alle Knoten in einem Amazon EMR-Cluster aktualisieren, nachdem der BOOTSTRAPPING-Status abgeschlossen ist.

Kurzbeschreibung

Die Bootstrap-Phase findet statt, bevor Amazon EMR Anwendungen wie Apache Hadoop und Apache Spark installiert und konfiguriert. Um nach der Installation und Konfiguration der Anwendungen durch Amazon EMR weitere Änderungen an allen Clusterknoten vorzunehmen, führen Sie eine Bootstrap-Aktion aus, bei der ein anderes Skript heruntergeladen und ausgeführt wird.

Behebung

1.Erstellen Sie ein Bash-Skript, das die Änderungen angibt, die Sie an allen Clusterknoten vornehmen möchten. Sehen Sie sich die folgenden Beispiele an.

Beispiel 1: Dieses Skript wartet, bis eine Konfigurationsdatei (/etc/hadoop/conf/hadoop-env.sh) verfügbar ist, und führt dann weitere Arbeiten.

#!/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

Beispiel 2: Dieses Skript wartet, bis der EMR-Cluster den Status WAITING erreicht, bevor weitere Anpassungen implementiert werden. Dadurch kann der EMR-Cluster die Installation und Konfiguration von Hadoop und anderen Anwendungen abschließen.

#!/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.Starten Sie einen EMR-Cluster und fügen Sie eine Bootstrap-Aktion hinzu, die der folgenden ähnelt. Dieses Skript lädt das Skript herunter, das Sie im vorherigen Schritt erstellt haben (script_b.sh), und führt es dann im Hintergrund.

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

Verwandte Informationen

Den Cluster-Lebenszyklus verstehen

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 2 Jahren