

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Erstellen Sie Bootstrap-Aktionen, um zusätzliche Software mit einem Amazon EMR-Cluster zu installieren
<a name="emr-plan-bootstrap"></a>

Sie können eine *Bootstrap-Aktion* verwenden, um zusätzliche Software zu installieren oder die Konfiguration von Cluster-Instances anzupassen. Bootstrap-Aktionen sind Skripts, die auf Clustern ausgeführt werden, nachdem Amazon EMR die Instance mithilfe von Amazon Machine Image (AMI) startet. Bootstrap-Aktionen werden ausgeführt, bevor Amazon EMR die Anwendungen installiert, die Sie bei der Erstellung des Clusters angeben haben und bevor die Cluster-Knoten mit der Bearbeitung der Daten beginnen. Wenn Sie einem aktiven Cluster Knoten hinzufügen, werden die Bootstrap-Aktionen auf diesen Knoten auch auf die gleiche Weise ausgeführt. Sie können benutzerdefinierte Bootstrap-Aktionen erstellen und sie beim Erstellen Ihres Clusters angeben. 

Die meisten vordefinierten Bootstrap-Aktionen für die Amazon-EMR-AMI-Versionen 2.x und 3.x werden in den Versionen 4.x von Amazon EMR nicht unterstützt. Beispielsweise werden `configure-Hadoop` und `configure-daemons` in Amazon-EMR-Version 4.x nicht unterstützt. Stattdessen stellt Amazon-EMR-Version 4.x diese Funktionalität nativ bereit. Weitere Informationen zur Migration von Bootstrap-Aktionen von den Amazon-EMR-AMI-Versionen 2.x und 3.x auf Amazon-EMR-Version 4.x finden Sie unter [Anpassen der Cluster- und Anwendungskonfiguration mit früheren AMI-Versionen von Amazon EMR](https://docs.aws.amazon.com/emr/latest/ReleaseGuide/emr-3x-customizeappconfig.html) im Amazon-EMR-Versionshandbuch.

## Bootstrap-Aktionen – Grundlagen
<a name="bootstrapUses"></a>

Bootstrap-Aktionen werden standardmäßig als Hadoop-Benutzer ausgeführt. Sie können eine Bootstrap-Aktion mit Root-Berechtigungen ausführen, indem Sie `sudo` verwenden. 

Alle Amazon-EMR-Verwaltungsschnittstellen unterstützen Bootstrap-Aktionen. Sie können bis zu 16 Bootstrap-Aktionen pro Cluster angeben, indem Sie mehrere `bootstrap-actions` Parameter von der Konsole oder API aus angeben. AWS CLI

Von der Amazon-EMR-Konsole können Sie optional eine Bootstrap-Aktion beim Erstellen eines Clusters angeben.

Wenn Sie die CLI verwenden, können Sie Verweise auf Bootstrap-Aktionsskripts an Amazon EMR übergeben, indem Sie beim Erstellen des Clusters den Parameter `--bootstrap-actions` mit dem Befehl `create-cluster` hinzufügen.

```
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/filename",Args=[arg1,arg2]
```

Wenn die Bootstrap-Aktion einen Fehlercode ungleich null zurückgibt, wird dieser von Amazon EMR wie ein Fehler behandelt und die Instance wird beendet. Wenn zu viele Instances bei ihren Bootstrap-Aktionen fehlschlagen, beendet Amazon EMR den Cluster. Wenn nur wenige Instances ausfallen, versucht Amazon EMR, die ausgefallenen Instances neu zuzuordnen und fortzufahren. Verwenden Sie den Cluster-Fehlercode `lastStateChangeReason`, um Fehler zu identifizieren, die durch eine Bootstrap-Aktion verursacht wurden.

## Eine bedingte eine Bootstrap-Aktion ausführen
<a name="emr-bootstrap-runif"></a>

Um Bootstrap-Aktionen nur auf dem Hauptknoten auszuführen, können Sie eine benutzerdefinierte Bootstrap-Aktion mit etwas Logik verwenden, um festzustellen, ob es sich bei dem Knoten um einen Hauptknoten handelt.

```
#!/bin/bash
if grep isMaster /mnt/var/lib/info/instance.json | grep false;
then        
    echo "This is not master node, do nothing,exiting"
    exit 0
fi
echo "This is master, continuing to execute script"
# continue with code logic for master node below
```

Die folgende Ausgabe wird von einem Core-Knoten aus gedruckt.

```
This is not master node, do nothing, exiting
```

Die folgende Ausgabe wird vom Hauptknoten aus gedruckt.

```
This is master, continuing to execute script
```

Um diese Logik zu verwenden, laden Sie Ihre Bootstrap-Aktion, einschließlich des obigen Codes, in Ihren Amazon-S3-Bucket hoch. Fügen Sie auf der AWS CLI den `--bootstrap-actions` Parameter zum `aws emr create-cluster` API-Aufruf hinzu und geben Sie den Speicherort Ihres Bootstrap-Skripts als Wert von an. `Path` 

## Aktionen beim Herunterfahren
<a name="bootstrap_Shutown"></a>

Ein Bootstrap-Aktionsskript kann eine oder mehrere Shutdown-Aktionen durchführen, indem es Skripts in das Verzeichnis `/mnt/var/lib/instance-controller/public/shutdown-actions/` schreibt. Wenn ein Cluster beendet wird, werden alle Skripts in diesem Verzeichnis parallel ausgeführt. Jedes Skript muss innerhalb von 60 Sekunden ausgeführt und abgeschlossen werden. 

Es wird nicht garantiert, dass Shutdown-Aktionsskripts ausgeführt werden, wenn der Knoten mit einem Fehler beendet wird. 

**Anmerkung**  
Bei Verwendung der Amazon-EMR-Version 4.0 und höher müssen Sie das Verzeichnis `/mnt/var/lib/instance-controller/public/shutdown-actions/` auf dem Hauptknoten manuell erstellen. Es ist standardmäßig zwar nicht vorhanden, nach Erstellung werden die Skripts in diesem Verzeichnis aber trotzdem vor dem Herunterfahren ausgeführt. Weitere Informationen zum Herstellen einer Verbindung mit dem Master-Knoten zum Erstellen von Verzeichnissen finden Sie unter [Stellen Sie mithilfe von SSH eine Connect zum primären Knoten des Amazon EMR-Clusters her](emr-connect-master-node-ssh.md).

## Benutzerdefinierte Bootstrap-Aktionen verwenden
<a name="bootstrapCustom"></a>

Sie können ein benutzerdefiniertes Skript erstellen, um eine angepasste Bootstrap-Aktion auszuführen. Alle Amazon-EMR-Schnittstellen können auf eine benutzerdefinierte Bootstrap-Aktion verweisen.

**Anmerkung**  
Für eine optimale Leistung empfehlen wir, benutzerdefinierte Bootstrap-Aktionen, -Skripts und andere Dateien, die Sie mit Amazon EMR verwenden möchten, in einem Amazon S3 S3-Bucket zu speichern, der sich in demselben Cluster AWS-Region befindet.

**Topics**
+ [Benutzerdefinierte Bootstrap-Aktionen hinzufügen](#custom-bootstrap)
+ [Verwenden einer benutzerdefinierten Bootstrap-Aktion zum Kopieren eines Objekts aus Amazon S3 in jeden Knoten](#CustomBootstrapCopyS3Object)

### Benutzerdefinierte Bootstrap-Aktionen hinzufügen
<a name="custom-bootstrap"></a>

------
#### [ Console ]

**Um mit der Konsole einen Cluster mit einer Bootstrap-Aktion zu erstellen**

1. Melden Sie sich bei der AWS-Managementkonsole an und öffnen Sie die Amazon EMR-Konsole unter [https://console.aws.amazon.com/emr](https://console.aws.amazon.com/emr).

1. Wählen Sie im linken Navigationsbereich unter **EMR in EC2** die Option **Cluster** und dann **Cluster erstellen** aus.

1. Wählen Sie unter **Bootstrap-Aktionen** die Option **Hinzufügen** aus, um einen Namen, einen Skriptspeicherort und optionale Argumente für Ihre Aktion anzugeben. Wählen Sie **Bootstrap-Aktion hinzufügen** aus.

1. Fügen Sie optional weitere Bootstrap-Aktionen hinzu.

1. Wählen Sie alle anderen Optionen aus, die für Ihren Cluster gelten. 

1. Um Ihren Cluster jetzt zu starten, wählen Sie **Cluster erstellen** aus.

------
#### [ CLI ]

**Um einen Cluster mit einer benutzerdefinierten Bootstrap-Aktion zu erstellen, verwenden Sie AWS CLI**

Wenn Sie die Aktion AWS CLI zum Einbeziehen einer Bootstrap-Aktion verwenden, geben Sie `Path` und `Args` als kommagetrennte Liste an. Bei dem folgenden Beispiel wird keine Argumentliste verwendet.
+ Um einen Cluster mit einer benutzerdefinierten Bootstrap-Aktion zu starten, geben Sie den folgenden Befehl ein und *myKey* ersetzen Sie ihn durch den Namen Ihres EC2-Schlüsselpaars. Fügen Sie `--bootstrap-actions` als Parameter ein und geben Sie den Speicherort Ihres Bootstrap-Skripts als Wert von `Path` an.
  + Linux-, UNIX- und Mac OS X-Benutzer:

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.0.0 \
    2. --use-default-roles --ec2-attributes KeyName=myKey \
    3. --applications Name=Hive Name=Pig \
    4. --instance-count 3 --instance-type m5.xlarge \
    5. --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```
  + Windows-Nutzer:

    ```
    1. aws emr create-cluster --name "Test cluster" --release-label emr-4.2.0 --use-default-roles --ec2-attributes KeyName=myKey --applications Name=Hive Name=Pig --instance-count 3 --instance-type m5.xlarge --bootstrap-actions Path="s3://elasticmapreduce/bootstrap-actions/download.sh"
    ```

  Wenn Sie die Instance-Anzahl ohne den `--instance-groups`-Parameter angeben, wird ein einzelner Primärknoten gestartet. Die verbleibenden Instances werden dabei als Core-Knoten gestartet. Alle Knoten verwenden den im Befehl angegebenen Instance-Typ.
**Anmerkung**  
Wenn Sie zuvor nicht die standardmäßige Amazon-EMR-Servicerolle und das EC2-Instance-Profil erstellt haben, geben Sie `aws emr create-default-roles` ein, um sie zu erstellen, bevor Sie den Unterbefehl `create-cluster` eingeben.

  Weitere Informationen zur Verwendung von Amazon EMR-Befehlen finden Sie AWS CLI unter[https://docs.aws.amazon.com/cli/latest/reference/emr](https://docs.aws.amazon.com/cli/latest/reference/emr).

------

### Verwenden einer benutzerdefinierten Bootstrap-Aktion zum Kopieren eines Objekts aus Amazon S3 in jeden Knoten
<a name="CustomBootstrapCopyS3Object"></a>

Sie können mit einer Bootstrap-Aktion Objekte von Amazon S3 in jeden Knoten eines Cluster kopieren, bevor Ihre Anwendungen installiert werden. Der AWS CLI ist auf jedem Knoten eines Clusters installiert, sodass Ihre Bootstrap-Aktion Befehle aufrufen AWS CLI kann.

Das folgende Beispiel zeigt ein einfaches Skript für eine Bootstrap-Aktion, die die Datei `myfile.jar` aus Amazon S3 zum lokalen Ordner `/mnt1/myfolder` auf jedem Cluster-Knoten kopiert. Das Skript wird mit dem Dateinamen `copymyfile.sh` in Amazon S3 mit den folgenden Inhalten gespeichert.

```
#!/bin/bash
aws s3 cp s3://amzn-s3-demo-bucket/myfilefolder/myfile.jar /mnt1/myfolder
```

Wenn Sie den Cluster starten, geben Sie das Skript an. Das folgende AWS CLI Beispiel verdeutlicht dies:

```
aws emr create-cluster --name "Test cluster" --release-label emr-7.12.0 \
--use-default-roles --ec2-attributes KeyName=myKey \
--applications Name=Hive Name=Pig \
--instance-count 3 --instance-type m5.xlarge \
--bootstrap-actions Path="s3://amzn-s3-demo-bucket/myscriptfolder/copymyfile.sh"
```