

AWS Data Pipeline ist für Neukunden nicht mehr verfügbar. Bestandskunden von AWS Data Pipeline können den Service weiterhin wie gewohnt nutzen. [Weitere Informationen](https://aws.amazon.com/blogs/big-data/migrate-workloads-from-aws-data-pipeline/)

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.

# EmrCluster
<a name="dp-object-emrcluster"></a>

Stellt die Konfiguration eines Amazon EMR-Clusters dar. Dieses Objekt wird von [EmrActivity](dp-object-emractivity.md) und [HadoopActivity](dp-object-hadoopactivity.md) zum Starten eines Clusters verwendet.

**Topics**
+ [Schedulers](#emrcluster-schedulers)
+ [Amazon EMR-Release-Versionen](#dp-emrcluster-release-versions)
+ [Amazon EMR-Berechtigungen](#w2aac52c17b9c11)
+ [Syntax](#emrcluster-syntax)
+ [Beispiele](emrcluster-example.md)
+ [Weitere Informationen finden Sie unter:](#emrcluster-seealso)

## Schedulers
<a name="emrcluster-schedulers"></a>

Scheduler bieten eine Möglichkeit, die Ressourcenzuweisung und Auftragspriorisierung in einem Hadoop-Cluster festzulegen. Administratoren oder Benutzer können einen Scheduler für verschiedene Klassen von Benutzern und Anwendungen auswählen. Ein Scheduler könnte Warteschlangen nutzen, um Ressourcen für Benutzer und Anwendungen zuzuweisen. Sie richten diese Warteschlangen beim Erstellen des Clusters ein. Anschließend können Sie für bestimmte Arbeits- und Benutzertypen eine höhere Priorität festlegen als für andere. Dieses Vorgehen ermöglicht die effiziente Nutzung von Cluster-Ressourcen, wenn mehrere Benutzer Arbeiten zum Cluster übermitteln. Es gibt drei Arten von Schedulern:
+ [FairScheduler](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/FairScheduler.html)— Versucht, Ressourcen gleichmäßig über einen längeren Zeitraum einzuplanen.
+ [CapacityScheduler](https://hadoop.apache.org/docs/stable/hadoop-yarn/hadoop-yarn-site/CapacityScheduler.html)— Verwendet Warteschlangen, um Clusteradministratoren zu ermöglichen, Benutzer Warteschlangen mit unterschiedlicher Priorität und Ressourcenzuweisung zuzuweisen. 
+ Standard: wird vom Cluster verwendet, was über Ihre Site konfiguriert werden kann.

## Amazon EMR-Release-Versionen
<a name="dp-emrcluster-release-versions"></a>

Eine Amazon-EMR-Version ist eine Gruppe von Open-Source-Anwendungen aus dem Big-Data-Ökosystem. Jede Version umfasst verschiedene Big-Data-Anwendungen, Komponenten und Funktionen, die Sie bei der Erstellung eines Clusters für die Installation und Konfiguration von Amazon EMR auswählen. Sie geben die Version unter Verwendung der Versionsbezeichnung an. Versionsbezeichnungen haben die Form `emr-x.x.x`. Beispiel, `emr-5.30.0`. Amazon EMR-Cluster basieren auf dem Release-Label `emr-4.0.0` und verwenden später die `releaseLabel` Eigenschaft, um das Release-Label eines `EmrCluster` Objekts anzugeben. Frühere Versionen verwenden die Eigenschaft `amiVersion`.

**Wichtig**  
Alle Amazon EMR-Cluster, die mit Version 5.22.0 oder höher erstellt wurden, verwenden [Signature Version 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html), um Anfragen an Amazon S3 zu authentifizieren. Einige frühere Versionen verwenden Signature Version 2. Die Unterstützung für Signature Version 2 wird eingestellt. Weitere Informationen finden Sie unter [Amazon S3 Update — SigV2 Deprecation Period Extended and Modified](https://aws.amazon.com/blogs/aws/amazon-s3-update-sigv2-deprecation-period-extended-modified/). Wir empfehlen dringend, eine Amazon EMR-Release-Version zu verwenden, die Signature Version 4 unterstützt. Für frühere Versionen, beginnend mit EMR 4.7.x, wurde die neueste Version der Serie aktualisiert, um Signature Version 4 zu unterstützen. Wenn Sie eine frühere EMR-Version verwenden, empfehlen wir, die neueste Version der Serie zu verwenden. Vermeiden Sie außerdem Versionen vor EMR 4.7.0.

### Überlegungen und Einschränkungen
<a name="dp-emrcluster-considerations"></a>

#### Verwenden Sie die neueste Version von Task Runner
<a name="dp-task-runner-latest"></a>

Wenn Sie ein selbstverwaltetes `EmrCluster` Objekt mit einem Release-Label verwenden, verwenden Sie den neuesten Task Runner. Weitere Informationen zu Task-Runner finden Sie unter [Arbeiten mit Task Runner](dp-using-task-runner.md). Sie können Eigenschaftswerte für alle Amazon EMR-Konfigurationsklassifizierungen konfigurieren. Weitere Informationen finden Sie unter [Configuring Applications](https://docs.aws.amazon.com/ElasticMapReduce/latest/ReleaseGuide/emr-configure-apps.html) im *Amazon EMR Release Guide*, in und in den [EmrConfiguration](dp-object-emrconfiguration.md) [Eigenschaft](dp-object-property.md) Objektreferenzen. 

#### Support für IMDSv2
<a name="dp-emr-imdsv2-support"></a>

Bisher nur AWS Data Pipeline unterstützt IMDSv1. AWS Data Pipeline Unterstützt IMDSv2 jetzt Amazon EMR 5.23.1, 5.27.1 und 5.32 oder höher sowie Amazon EMR 6.2 oder höher. IMDSv2 verwendet eine sitzungsorientierte Methode, um die Authentifizierung beim Abrufen von Metadateninformationen von Instances besser handhaben zu können. Sie sollten Ihre Instanzen so konfigurieren, dass sie IMDSv2 Aufrufe tätigen, indem Sie benutzerverwaltete Ressourcen mit -2.0 erstellen. TaskRunner

#### Amazon EMR 5.32 oder höher und Amazon EMR 6.x
<a name="dp-emr-6-classpath"></a>

Die Release-Serien Amazon EMR 5.32 oder höher und 6.x verwenden Hadoop Version 3.x, wodurch grundlegende Änderungen bei der Bewertung des Klassenpfads von Hadoop im Vergleich zu Hadoop-Version 2.x eingeführt wurden. Gängige Bibliotheken wie Joda-Time wurden aus dem Klassenpfad entfernt.

Wenn [EmrActivity](dp-object-emractivity.md) oder eine [HadoopActivity](dp-object-hadoopactivity.md) Jar-Datei ausführt, die Abhängigkeiten von einer Bibliothek hat, die in Hadoop 3.x entfernt wurde, schlägt der Schritt mit dem Fehler oder fehl. `java.lang.NoClassDefFoundError` `java.lang.ClassNotFoundException` Dies kann bei Jar-Dateien passieren, die mit den Release-Versionen von Amazon EMR 5.x problemlos ausgeführt wurden.

Um das Problem zu beheben, müssen Sie Abhängigkeiten von Jar-Dateien in den Hadoop-Klassenpfad eines `EmrCluster` Objekts kopieren, bevor Sie das oder das starten. `EmrActivity` `HadoopActivity` Dafür stellen wir ein Bash-Skript zur Verfügung. Das Bash-Skript ist an der folgenden Stelle verfügbar, beispielsweise in der AWS Region, in der Ihr `EmrCluster` Objekt ausgeführt wird. *MyRegion* `us-west-2`

```
s3://datapipeline-MyRegion/MyRegion/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh
```

Die Art und Weise, wie das Skript ausgeführt wird, hängt davon ab, ob `EmrActivity` es auf einer Ressource `HadoopActivity` ausgeführt wird, die von einer selbst verwalteten Ressource verwaltet wird, AWS Data Pipeline oder ob es auf einer selbst verwalteten Ressource ausgeführt wird.

Wenn Sie eine Ressource verwenden, die von verwaltet wird AWS Data Pipeline, fügen Sie dem `EmrCluster` Objekt eine `bootstrapAction` hinzu. Das `bootstrapAction` gibt das Skript und die Jar-Dateien an, die als Argumente kopiert werden sollen. Sie können bis zu 255 `bootstrapAction` Felder pro `EmrCluster` Objekt hinzufügen, und Sie können ein `bootstrapAction` Feld zu einem `EmrCluster` Objekt hinzufügen, das bereits über Bootstrap-Aktionen verfügt.

Um dieses Skript als Bootstrap-Aktion anzugeben, verwenden Sie die folgende Syntax: Dabei `JarFileRegion` handelt es sich um die Region, in der die Jar-Datei gespeichert ist, und jeweils *MyJarFile*n** um den absoluten Pfad einer Jar-Datei in Amazon S3, die in den Hadoop-Klassenpfad kopiert werden soll. Geben Sie standardmäßig keine Jar-Dateien an, die sich im Hadoop-Klassenpfad befinden.

```
s3://datapipeline-MyRegion/MyRegion/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,JarFileRegion,MyJarFile1,MyJarFile2[, ...]
```

Das folgende Beispiel spezifiziert eine Bootstrap-Aktion, die zwei Jar-Dateien in Amazon S3 kopiert: `my-jar-file.jar` und die`emr-dynamodb-tool-4.14.0-jar-with-dependencies.jar`. Die im Beispiel verwendete Region ist us-west-2.

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m5.xlarge",
  "coreInstanceType" : "m5.xlarge",
  "coreInstanceCount" : "2",
  "taskInstanceType" : "m5.xlarge",
  "taskInstanceCount": "2",
  "bootstrapAction" : ["s3://datapipeline-us-west-2/us-west-2/bootstrap-actions/latest/TaskRunner/copy-jars-to-hadoop-classpath.sh,us-west-2,s3://path/to/my-jar-file.jar,s3://dynamodb-dpl-us-west-2/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar"]
}
```

Sie müssen die Pipeline speichern und aktivieren, damit die Änderung an der neuen `bootstrapAction` Pipeline wirksam wird.

Wenn Sie eine selbstverwaltete Ressource verwenden, können Sie das Skript auf die Clusterinstanz herunterladen und es über die Befehlszeile mit SSH ausführen. Das Skript erstellt ein Verzeichnis mit dem Namen `/etc/hadoop/conf/shellprofile.d` und eine `datapipeline-jars.sh` in diesem Verzeichnis benannte Datei. Die als Befehlszeilenargumente bereitgestellten JAR-Dateien werden in ein Verzeichnis kopiert, das das Skript mit dem Namen erstellt. `/home/hadoop/datapipeline_jars` Wenn Ihr Cluster anders eingerichtet ist, ändern Sie das Skript nach dem Herunterladen entsprechend.

Die Syntax für die Ausführung des Skripts in der Befehlszeile unterscheidet sich geringfügig von der im vorherigen Beispiel `bootstrapAction` gezeigten Syntax. Verwenden Sie Leerzeichen anstelle von Kommas zwischen Argumenten, wie im folgenden Beispiel gezeigt.

```
./copy-jars-to-hadoop-classpath.sh us-west-2 s3://path/to/my-jar-file.jar s3://dynamodb-dpl-us-west-2/emr-ddb-storage-handler/4.14.0/emr-dynamodb-tools-4.14.0-jar-with-dependencies.jar
```

## Amazon EMR-Berechtigungen
<a name="w2aac52c17b9c11"></a>

Wenn Sie eine benutzerdefinierte IAM-Rolle erstellen, sollten Sie sorgfältig die Mindestberechtigungen berücksichtigen, die Ihr Cluster zur Ausführung seiner Aufgaben benötigt. Stellen Sie sicher, dass Sie Zugriff auf die erforderlichen Ressourcen gewähren, z. B. Dateien in Amazon S3 oder Daten in Amazon RDS, Amazon Redshift oder DynamoDB. Wenn Sie `visibleToAllUsers` auf „False“ festlegen möchten, muss Ihre Rolle über die entsprechenden Berechtigungen verfügen. Beachten Sie, dass `DataPipelineDefaultRole` nicht über diese Berechtigungen verfügt. Sie müssen entweder eine Vereinigung der `DataPipelineDefaultRole` Rollen `DefaultDataPipelineResourceRole` und als `EmrCluster` Objektrolle angeben oder zu diesem Zweck Ihre eigene Rolle erstellen.

## Syntax
<a name="emrcluster-syntax"></a>


****  

| Objektaufruf-Felder | Description | Slot-Typ | 
| --- | --- | --- | 
| schedule | Dieses Objekt wird innerhalb der Ausführung eines Zeitplanintervalls aufgerufen. Sie müssen einen Zeitplanverweis auf ein anderes Objekt angeben, um die Abhängigkeitsausführungsreihenfolge für dieses Objekt festzulegen. Sie können diese Anforderung erfüllen, indem Sie explizit einen Zeitplan für das Objekt festlegen, indem sie beispielsweise "schedule": \$1"ref": "DefaultSchedule"\$1 angeben. In den meisten Fällen ist es besser, den Zeitplanverweis auf das Standard-Pipeline-Objekt zu setzen, damit alle Objekte diesen Zeitplan erben. Wenn die Pipeline über einen Baum mit Zeitplänen verfügt (Zeitpläne innerhalb des Hauptplans), können Sie ein übergeordnetes Objekt mit Zeitplänenreferenz erstellen. Weitere Informationen zu optionalen Beispiel-Zeitplankonfigurationen finden Sie unter [https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html](https://docs.aws.amazon.com/datapipeline/latest/DeveloperGuide/dp-object-schedule.html). | Referenzobjekt, z. B.  "schedule":\$1"ref":"myScheduleId"\$1 | 

 


****  

| Optionale Felder | Description | Slot-Typ | 
| --- | --- | --- | 
| actionOnResourceFehlschlag | Die Aktion, die nach einem Ressourcenfehler dieser Ressource ausgeführt wird. Gültige Werte sind "retryall", der für die festgelegte Dauer wiederholt versucht, alle Aufgaben des Clusters durchzuführen, und "retrynone". | Zeichenfolge | 
| actionOnTaskFehlschlag | Die Aktion, die nach einem Aufgabenfehler dieser Ressource ausgeführt wird. Gültige Werte sind "continue", was bedeutet, dass der Cluster nicht beendet wird, und "terminate". | Zeichenfolge | 
| additionalMasterSecurityGroupIds | Die Kennung zusätzlicher Master-Sicherheitsgruppen des EMR-Clusters, die der Form XXXX6a sg-01 folgt. Weitere Informationen finden Sie unter [Zusätzliche Amazon EMR-Sicherheitsgruppen](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-additional-sec-groups.html) im Amazon EMR Management Guide. | Zeichenfolge | 
| additionalSlaveSecurityGroupIds | Die ID zusätzlicher Slave-Sicherheitsgruppen des EMR-Clusters, die dem Format sg-01XXXX6a entspricht. | Zeichenfolge | 
| amiVersion | Die Amazon Machine Image (AMI) -Version, die Amazon EMR zur Installation der Clusterknoten verwendet. Weitere Informationen finden Sie im [Amazon EMR-Managementhandbuch](https://docs.aws.amazon.com/emr/latest/ManagementGuide/). | Zeichenfolge | 
| applications | Anwendungen, die im Cluster mit durch Kommas getrennten Argumenten installiert werden sollen. Hive und Pig sind standardmäßig installiert. Dieser Parameter gilt nur für Amazon EMR Version 4.0 und höher. | Zeichenfolge | 
| attemptStatus | Der zuletzt gemeldete Status von der Remote-Aktivität. | Zeichenfolge | 
| attemptTimeout | Timeout für die Remote-Arbeit abgeschlossen. Wenn diese Option aktiviert ist, kann eine Remote-Aktivität, die nicht innerhalb der festgelegten Startzeit abgeschlossen wird, wiederholt werden. | Zeitraum | 
| availabilityZone | Die Availability Zone, in der der Cluster gestartet werden soll. | Zeichenfolge | 
| bootstrapAction | Eine Aktion, die ausgeführt werden soll, wenn der Cluster startet. Sie können durch Kommas getrennte Argumente festlegen. Wenn Sie mehrere Aktionen angeben möchten (maximal 255), fügen Sie die entsprechende Anzahl von bootstrapAction-Feldern hinzu. Standardmäßig wird der Cluster ohne Bootstrap-Aktionen gestartet. | Zeichenfolge | 
| configuration | Konfiguration für den Amazon EMR-Cluster. Dieser Parameter gilt nur für Amazon EMR Version 4.0 und höher. | Referenzobjekt, z. B. "configuration":\$1"ref":"myEmrConfigurationId"\$1 | 
| coreInstanceBidPreis | Der maximale Spot-Preis, den Sie bereit sind, für Amazon EC2 EC2-Instances zu zahlen. Wenn ein Angebotspreis angegeben ist, verwendet Amazon EMR Spot-Instances für die Instance-Gruppe. Angegeben in USD. | Zeichenfolge | 
| coreInstanceCount | Gibt an, wie viele Core-Knoten für den Cluster verwendet werden sollen. | Ganzzahl | 
| coreInstanceType | Der Typ der Amazon EC2 EC2-Instance, die für Core-Knoten verwendet werden soll. Siehe [Unterstützte Amazon EC2 EC2-Instances für Amazon EMR-Cluster](dp-emr-supported-instance-types.md). | Zeichenfolge | 
| coreGroupConfiguration | Die Konfiguration für die Amazon EMR-Cluster-Core-Instance-Gruppe. Dieser Parameter gilt nur für Amazon EMR Version 4.0 und höher. | Referenzobjekt, z. B. “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| coreEbsConfiguration | Die Konfiguration für Amazon EBS-Volumes, die an jeden der Kernknoten in der Kerngruppe im Amazon EMR-Cluster angehängt werden. Weitere Informationen finden Sie unter [Instance-Typen, die die EBS-Optimierung Support](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) im Amazon EC2 EC2-Benutzerhandbuch. | Referenzobjekt, z. B. “coreEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| customAmiId | Gilt nur für Amazon EMR-Release-Version 5.7.0 und höher. Gibt die AMI-ID eines benutzerdefinierten AMI an, das verwendet werden soll, wenn Amazon EMR Amazon EC2 EC2-Instances bereitstellt. Sie kann auch anstelle von Bootstrap-Aktionen verwendet werden, um Cluster-Knotenkonfigurationen anzupassen. Weitere Informationen finden Sie unter dem folgenden Thema im Amazon EMR Management Guide. [Verwenden eines benutzerdefinierten AMI](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-custom-ami.html) | Zeichenfolge | 
| EbsBlockDeviceConfig |  Die Konfiguration eines angeforderten Amazon EBS-Blockgeräts, das der Instanzgruppe zugeordnet ist. Diese umfasst eine feste Anzahl an Volumes, die jeder Instance in der Instance-Gruppe zugeordnet wird. Sie umfasst `volumesPerInstance` und `volumeSpecification`, wobei:  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/datapipeline/latest/DeveloperGuide/dp-object-emrcluster.html)  | Referenzobjekt, z. B. “EbsBlockDeviceConfig”: \$1“ref”: “myEbsBlockDeviceConfig”\$1 | 
| emrManagedMasterSecurityGroupId | Die ID der Master-Sicherheitsgruppe des Amazon EMR-Clusters, die der Form von sg-01XXXX6a folgt. Weitere Informationen finden [Sie unter Configure Security Groups](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-security-groups.html) im Amazon EMR Management Guide. | Zeichenfolge | 
| emrManagedSlaveSecurityGroupId | Die ID der Slave-Sicherheitsgruppe des Amazon EMR-Clusters, die dem Formular sg-01XXXX6a folgt. | Zeichenfolge | 
| enableDebugging | Aktiviert das Debuggen auf dem Amazon EMR-Cluster. | Zeichenfolge | 
| failureAndRerunModus | Beschreibt das Verhalten des Konsumentenknotens, wenn Abhängigkeiten fehlschlagen oder erneut ausgeführt werden. | Aufzählung | 
| hadoopSchedulerType | Der Scheduler-Typ des Clusters. Gültige Typen sind:  PARALLEL\$1FAIR\$1SCHEDULING PARALLEL\$1CAPACITY\$1SCHEDULING und  DEFAULT\$1SCHEDULER. | Aufzählung | 
| httpProxy | Der Proxy-Host, der von Clients zum Verbinden mit den AWS-Services verwendet wird. | Referenzobjekt, zum Beispiel „HttpProxy“: \$1"ref“:“ myHttpProxy Id "\$1 | 
| initTimeout | Die Zeit, die auf den Start der Ressource gewartet wird.  | Zeitraum | 
| keyPair | Das Amazon EC2 EC2-Schlüsselpaar, das für die Anmeldung am Master-Knoten des Amazon EMR-Clusters verwendet werden soll. | Zeichenfolge | 
| lateAfterTimeout | Die verstrichene Zeit nach dem Start der Pipeline, innerhalb derer das Objekt abgeschlossen werden muss. Sie wird nur ausgelöst, wenn der Zeitplantyp nicht auf eingestellt ist. ondemand | Zeitraum | 
| masterInstanceBidPreis | Der maximale Spot-Preis, den Sie bereit sind, für Amazon EC2 EC2-Instances zu zahlen. Es handelt sich um einen Dezimalwert zwischen 0 und einschließlich 20,00. Angegeben in USD. Wenn Sie diesen Wert festlegen, werden Spot-Instances für den Master-Knoten des Amazon EMR-Clusters aktiviert. Wenn ein Angebotspreis angegeben ist, verwendet Amazon EMR Spot-Instances für die Instance-Gruppe. | Zeichenfolge | 
| masterInstanceType | Der Typ der Amazon EC2 EC2-Instance, die für den Master-Knoten verwendet werden soll. Siehe [Unterstützte Amazon EC2 EC2-Instances für Amazon EMR-Cluster](dp-emr-supported-instance-types.md). | Zeichenfolge | 
| masterGroupConfiguration | Die Konfiguration für die Amazon EMR-Cluster-Master-Instance-Gruppe. Dieser Parameter gilt nur für Amazon EMR Version 4.0 und höher. | Referenzobjekt, z. B. “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| masterEbsConfiguration | Die Konfiguration für Amazon EBS-Volumes, die an jeden der Master-Knoten in der Master-Gruppe im Amazon EMR-Cluster angehängt werden. Weitere Informationen finden Sie unter [Instance-Typen, die die EBS-Optimierung Support](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) im Amazon EC2 EC2-Benutzerhandbuch. | Referenzobjekt, z. B. “masterEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| maxActiveInstances | Die maximale Anzahl gleichzeitiger aktiver Instances einer Komponente. Wiederholungen zählen nicht zur Anzahl der aktiven Instances. | Ganzzahl | 
| maximumRetries | Maximale Anzahl von Versuchen bei Ausfällen. | Ganzzahl | 
| onFail | Eine Aktion, die ausgeführt werden soll, wenn das aktuelle Objekt fehlschlägt. | Referenzobjekt, z. B. "onFail":\$1"ref":"myActionId"\$1 | 
| onLateAction | Aktionen, die ausgelöst werden sollen, wenn ein Objekt noch nicht geplant oder noch nicht abgeschlossen wurde. | Referenzobjekt, z. B. "onLateAction":\$1"ref":"myActionId"\$1 | 
| onSuccess | Eine Aktion, die ausgeführt wird, wenn das aktuelle Objekt erfolgreich ist. | Referenzobjekt, z. B. "onSuccess":\$1"ref":"myActionId"\$1 | 
| übergeordneter | Übergeordnetes Objekt des aktuellen Objekts, aus dem Slots übernommen werden. | Referenzobjekt, z. B. "parent":\$1"ref":"myBaseObjectId"\$1 | 
| pipelineLogUri | Die Amazon S3 S3-URI (z. B. 's3://BucketName/Key/ ') zum Hochladen von Protokollen für die Pipeline. | Zeichenfolge | 
| Region | Der Code für die Region, in der der Amazon EMR-Cluster ausgeführt werden soll. Standardmäßig wird der Cluster in derselben Region wie die Pipeline ausgeführt. Sie können den Cluster in derselben Region als abhängiges Datenset ausführen.  | Aufzählung | 
| releaseLabel | Versionsbezeichnung für den EMR-Cluster | Zeichenfolge | 
| reportProgressTimeout | Timeout für aufeinanderfolgende Aufrufe von Remote-Arbeit in reportProgress. Wenn diese Option aktiviert ist, werden Remote-Aktivitäten, die den Fortschritt für den angegebenen Zeitraum nicht melden, als fehlgeschlagen angesehen und es wird erneut versucht. | Zeitraum | 
| resourceRole | Die IAM-Rolle, die zur Erstellung des Amazon EMR-Clusters AWS Data Pipeline verwendet wird. Die Standardrolle ist DataPipelineDefaultRole.  | Zeichenfolge | 
| retryDelay | Die Zeitüberschreitungsdauer zwischen zwei Wiederholungsversuchen. | Zeitraum | 
| role | Die IAM-Rolle wurde an Amazon EMR übergeben, um EC2-Knoten zu erstellen. | Zeichenfolge | 
| runsOn | Dieses Feld ist für dieses Objekt nicht zulässig. | Referenzobjekt, z. B. "runsOn":\$1"ref":"myResourceId"\$1 | 
| Sicherheitskonfiguration | Die ID der EMR-Sicherheitskonfiguration, die auf den Cluster angewendet wird. Dieser Parameter gilt nur für Amazon EMR Version 4.8.0 und höher. | Zeichenfolge | 
| serviceAccessSecurityGroupId | Die ID für die Sicherheitsgruppe für den Servicezugriff des Amazon EMR-Clusters.  | Zeichenfolge. Sie hat das Format sg-01XXXX6a, z. B. sg-1234abcd. | 
| scheduleType | Mit dem Zeitplantyp können Sie angeben, ob die Objekte in Ihrer Pipeline-Definition am Anfang des Intervalls oder am Ende des Intervalls geplant werden sollen. Werte sind cron, ondemand und timeseries. Die timeseries-Planung bedeutet, dass Instances am Ende jedes Intervalls geplant sind. Die cron-Planung bedeutet, dass Instances am Anfang jedes Intervalls geplant sind. Ein ondemand-Zeitplan ermöglicht es Ihnen, eine Pipeline einmal pro Aktivierung auszuführen. Sie müssen die Pipeline nicht klonen oder neu erstellen, um sie erneut auszuführen. Wenn Sie einen ondemand-Zeitplan verwenden, muss er im Standardobjekt angegeben werden und der einzige für die Objekte in der Pipeline angegebene scheduleType sein. Um ondemand-Pipelines zu verwenden, rufen Sie einfach den ActivatePipeline-Vorgang für jeden nachfolgenden Lauf auf.  | Aufzählung | 
| subnetId | Die ID des Subnetzes, in dem der Amazon EMR-Cluster gestartet werden soll. | Zeichenfolge | 
| supportedProducts | Ein Parameter, der Software von Drittanbietern auf einem Amazon EMR-Cluster installiert, z. B. eine Drittanbieter-Distribution von Hadoop. | Zeichenfolge | 
| taskInstanceBidPreis | Der maximale Spot-Preis, den Sie für EC2-Instances zu zahlen bereit sind. Geben Sie eine Dezimalzahl von 0 bis 20,00 ein. Angegeben in USD. Wenn ein Angebotspreis angegeben ist, verwendet Amazon EMR Spot-Instances für die Instance-Gruppe. | Zeichenfolge | 
| taskInstanceCount | Die Anzahl der Task-Knoten, die für den Amazon EMR-Cluster verwendet werden sollen. | Ganzzahl | 
| taskInstanceType | Der Typ der Amazon EC2 EC2-Instance, die für Task-Knoten verwendet werden soll. | Zeichenfolge | 
| taskGroupConfiguration | Die Konfiguration für die Amazon EMR-Cluster-Task-Instance-Gruppe. Dieser Parameter gilt nur für Amazon EMR Version 4.0 und höher.  | Referenzobjekt, z. B. “configuration”: \$1“ref”: “myEmrConfigurationId”\$1 | 
| taskEbsConfiguration | Die Konfiguration für Amazon EBS-Volumes, die an jeden der Task-Knoten in der Aufgabengruppe im Amazon EMR-Cluster angehängt werden. Weitere Informationen finden Sie unter [Instance-Typen, die die EBS-Optimierung Support](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSOptimized.html) im Amazon EC2 EC2-Benutzerhandbuch. | Referenzobjekt, z. B. “taskEbsConfiguration”: \$1“ref”: “myEbsConfiguration”\$1 | 
| terminateAfter | Die Zeitspanne in Stunden, nach der die Ressource beendet wird. | Ganzzahl | 
| VolumeSpecification |   Die Amazon EBS-Volumenspezifikationen, wie Volumetyp, IOPS und Größe in Gigabytes (GiB), die für das Amazon EBS-Volume angefordert werden, das an eine Amazon EC2-Instance im Amazon EMR-Cluster angehängt ist. Der Knoten kann ein Core-, Master- oder Aufgabenknoten sein.  `VolumeSpecification` enthält: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/de_de/datapipeline/latest/DeveloperGuide/dp-object-emrcluster.html)  | Referenzobjekt, z. B. “VolumeSpecification”: \$1“ref”: “myVolumeSpecification”\$1 | 
| useOnDemandOnLastAttempt | Dieses Feld bestimmt, ob beim letzten Versuch, eine Ressource anzufordern, eine On-Demand-Instance statt einer Spot-Instance angefordert wird. Auf diese Weise wird sichergestellt, dass wenn die vorherigen Versuche fehlgeschlagen sind, der letzte Versuch nicht unterbrochen wird.  | Boolesch | 
| workerGroup | Dieses Feld ist bei diesem Objekt nicht zulässig. | Zeichenfolge | 

 


****  

| Laufzeitfelder | Description | Slot-Typ | 
| --- | --- | --- | 
| @activeInstances | Liste der aktuell geplanten aktiven Instance-Objekte. | Referenzobjekt, zum Beispiel „ActiveInstances“: \$1"ref“:“ Id "\$1 myRunnableObject | 
| @actualEndTime | Zeitpunkt, zu dem die Ausführung dieses Objekts abgeschlossen wurde. | DateTime | 
| @actualStartTime | Zeitpunkt, zu dem die Ausführung dieses Objekts gestartet wurde. | DateTime | 
| cancellationReason | Die cancellationReason, wenn dieses Objekt storniert wurde. | Zeichenfolge | 
| @cascadeFailedOn | Beschreibung der Zuständigkeitskette, bei der das Objekt fehlgeschlagen ist. | Referenzobjekt, zum Beispiel "cascadeFailedOn„: \$1" ref“:“ myRunnableObject Id "\$1 | 
| emrStepLog | Schrittprotokolle sind nur bei Amazon EMR-Aktivitätsversuchen verfügbar. | Zeichenfolge | 
| errorId | Die Fehler-ID, wenn dieses Objekt fehlgeschlagen ist. | Zeichenfolge | 
| errorMessage | Die Fehlermeldung, wenn dieses Objekt fehlgeschlagen ist. | Zeichenfolge | 
| errorStackTrace | Die Fehler-Stack-Ablaufverfolgung., wenn dieses Objekt fehlgeschlagen ist. | Zeichenfolge | 
| @failureReason | Der Grund für den Ressourcenfehler. | Zeichenfolge | 
| @finishedTime | Der Zeitpunkt, zu der dieses Objekt seine Ausführung beendet hat. | DateTime | 
| hadoopJobLog | Hadoop-Jobprotokolle sind bei Versuchen für Amazon EMR-Aktivitäten verfügbar. | Zeichenfolge | 
| @healthStatus | Der Integritätsstatus des Objekts, der Erfolg oder Misserfolg der letzten Objekt-Instance widerspiegelt, die einen beendeten Zustand erreicht hat. | Zeichenfolge | 
| @healthStatusFromInstanceId | ID des Objekts der letzten Instance, das einen beendeten Zustand erreicht hat. | Zeichenfolge | 
| @ Zeit healthStatusUpdated | Zeitpunkt, zu dem der Servicestatus beim letzten Mal aktualisiert wurde. | DateTime | 
| hostname | Der Hostname des Clients, der den Aufgabenversuch aufnimmt. | Zeichenfolge | 
| @lastDeactivatedTime | Zeitpunkt, zu dem dieses Objekt zuletzt deaktiviert wurde. | DateTime | 
| @ latestCompletedRun Zeit | Zeitpunkt des letzten Laufs, für den die Ausführung abgeschlossen wurde. | DateTime | 
| @latestRunTime | Zeitpunkt des letzten Laufs, für den die Ausführung geplant war. | DateTime | 
| @nextRunTime | Zeitpunkt des Laufs, der als nächstes geplant werden soll | DateTime | 
| reportProgressTime | Der letzte Zeitpunkt, an dem die Remote-Aktivität einen Fortschritt gemeldet hat. | DateTime | 
| @scheduledEndTime | Endzeit für Objekt einplanen. | DateTime | 
| @scheduledStartTime | Startzeit für Objekt einplanen. | DateTime | 
| @Status | Der Status des Objekts. | Zeichenfolge | 
| @Version | Pipeline-Version, mit der das Objekt erstellt wurde. | Zeichenfolge | 
| @waitingOn | Beschreibung der Liste der Abhängigkeiten, auf die dieses Objekt wartet. | Referenzobjekt, zum Beispiel „WaitingOn“: \$1"ref“:“ myRunnableObject Id "\$1 | 

 


****  

| Systemfelder | Description | Slot-Typ | 
| --- | --- | --- | 
| @error | Fehler mit einer Beschreibung des falsch formatierten Objekts. | Zeichenfolge | 
| @pipelineId | ID der Pipeline, zu der dieses Objekt gehört. | Zeichenfolge | 
| @sphere | Die Position eines Objekts im Lebenszyklus. Komponentenobjekte ergeben Instance-Objekte, die Versuchsobjekte ausführen. | Zeichenfolge | 

# Beispiele
<a name="emrcluster-example"></a>

Es folgen Beispiele für diesen Objekttyp.

**Topics**
+ [Starten Sie einen Amazon EMR-Cluster mit HadoopVersion](emrcluster-example-launch.md)
+ [Starten Sie einen Amazon EMR-Cluster mit dem Release-Label emr-4.x oder höher](emrcluster-example-release-label.md)
+ [Installieren Sie zusätzliche Software auf Ihrem Amazon EMR-Cluster](emrcluster-example-install-software.md)
+ [Deaktivieren der serverseitigen Verschlüsselung auf 3.x-Versionen](emrcluster-example1-disable-encryption.md)
+ [Deaktivieren der serverseitigen Verschlüsselung auf 4.x-Versionen](emrcluster-example2-disable-encryption.md)
+ [Konfigurieren Sie Hadoop KMS ACLs und erstellen Sie Verschlüsselungszonen in HDFS](emrcluster-example-hadoop-kms.md)
+ [Festlegen benutzerdefinierter IAM-Rollen](emrcluster-example-custom-iam-roles.md)
+ [Verwenden Sie die EmrCluster Ressource im AWS SDK for Java](emrcluster-example-java.md)
+ [Einen Amazon EMR-Cluster in einem privaten Subnetz konfigurieren](emrcluster-example-private-subnet.md)
+ [EBS-Volumes zu Cluster-Knoten hinzufügen](emrcluster-example-ebs.md)

# Starten Sie einen Amazon EMR-Cluster mit HadoopVersion
<a name="emrcluster-example-launch"></a>

**Example**  <a name="example1"></a>
Im folgenden Beispiel wird ein Amazon EMR-Cluster mit AMI-Version 1.0 und Hadoop 0.20 gestartet.  

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "hadoopVersion" : "0.20",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m3.xlarge",
  "coreInstanceType" : "m3.xlarge",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m3.xlarge",
  "taskInstanceCount": "10",
  "bootstrapAction" : ["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,arg1,arg2,arg3","s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop/configure-other-stuff,arg1,arg2"]
}
```

# Starten Sie einen Amazon EMR-Cluster mit dem Release-Label emr-4.x oder höher
<a name="emrcluster-example-release-label"></a>

**Example**  
Im folgenden Beispiel wird ein Amazon EMR-Cluster mit dem neueren `releaseLabel` Feld gestartet:  

```
{
  "id" : "MyEmrCluster",
  "type" : "EmrCluster",
  "keyPair" : "my-key-pair",
  "masterInstanceType" : "m3.xlarge",
  "coreInstanceType" : "m3.xlarge",
  "coreInstanceCount" : "10",
  "taskInstanceType" : "m3.xlarge",
  "taskInstanceCount": "10",
  "releaseLabel": "emr-4.1.0",
  "applications": ["spark", "hive", "pig"],
  "configuration": {"ref":"myConfiguration"}  
}
```

# Installieren Sie zusätzliche Software auf Ihrem Amazon EMR-Cluster
<a name="emrcluster-example-install-software"></a>

**Example**  <a name="example2"></a>
`EmrCluster`stellt das `supportedProducts` Feld bereit, das Drittanbieter-Software auf einem Amazon EMR-Cluster installiert. Damit können Sie beispielsweise eine benutzerdefinierte Distribution von Hadoop wie MapR installieren. Er akzeptiert eine durch Kommas getrennte Liste von Argumenten. Die Drittanbieter-Software kann diese Argumente lesen und darauf reagieren. Das folgende Beispiel zeigt, wie Sie mit dem Feld `supportedProducts` von `EmrCluster` einen benutzerdefinierten Cluster der MapR M3-Edition mit Karmasphere Analytics erstellen und ein `EmrActivity`-Objekt darauf ausführen.  

```
{
    "id": "MyEmrActivity",
    "type": "EmrActivity",
    "schedule": {"ref": "ResourcePeriod"},
    "runsOn": {"ref": "MyEmrCluster"},
    "postStepCommand": "echo Ending job >> /mnt/var/log/stepCommand.txt",    
    "preStepCommand": "echo Starting job > /mnt/var/log/stepCommand.txt",
    "step": "/home/hadoop/contrib/streaming/hadoop-streaming.jar,-input,s3n://elasticmapreduce/samples/wordcount/input,-output, \
     hdfs:///output32113/,-mapper,s3n://elasticmapreduce/samples/wordcount/wordSplitter.py,-reducer,aggregate"
  },
  {    
    "id": "MyEmrCluster",
    "type": "EmrCluster",
    "schedule": {"ref": "ResourcePeriod"},
    "supportedProducts": ["mapr,--edition,m3,--version,1.2,--key1,value1","karmasphere-enterprise-utility"],
    "masterInstanceType": "m3.xlarge",
    "taskInstanceType": "m3.xlarge"
}
```

# Deaktivieren der serverseitigen Verschlüsselung auf 3.x-Versionen
<a name="emrcluster-example1-disable-encryption"></a>

**Example**  <a name="example3"></a>
Eine `EmrCluster` Aktivität mit einer Hadoop-Version 2.x, erstellt von, AWS Data Pipeline aktiviert standardmäßig serverseitige Verschlüsselung. Wenn Sie die serverseitige Verschlüsselung deaktivieren möchten, müssen Sie eine Bootstrap-Aktion in der Cluster-Objektdefinition festlegen.  
Das folgende Beispiel erstellt eine `EmrCluster`-Aktivität, bei der die serverseitige Verschlüsselung deaktiviert ist:  

```
{  
   "id":"NoSSEEmrCluster",
   "type":"EmrCluster",
   "hadoopVersion":"2.x",
   "keyPair":"my-key-pair",
   "masterInstanceType":"m3.xlarge",
   "coreInstanceType":"m3.large",
   "coreInstanceCount":"10",
   "taskInstanceType":"m3.large",
   "taskInstanceCount":"10",
   "bootstrapAction":["s3://Region.elasticmapreduce/bootstrap-actions/configure-hadoop,-e, fs.s3.enableServerSideEncryption=false"]
}
```

# Deaktivieren der serverseitigen Verschlüsselung auf 4.x-Versionen
<a name="emrcluster-example2-disable-encryption"></a>

**Example**  <a name="example4"></a>
Sie müssen die serverseitige Verschlüsselung mit einem `EmrConfiguration`-Objekt deaktivieren.  
Das folgende Beispiel erstellt eine `EmrCluster`-Aktivität, bei der die serverseitige Verschlüsselung deaktiviert ist:  

```
   {
      "name": "ReleaseLabelCluster",
      "releaseLabel": "emr-4.1.0",
      "applications": ["spark", "hive", "pig"],
      "id": "myResourceId",
      "type": "EmrCluster",
      "configuration": {
        "ref": "disableSSE"
      }
    },
    {
      "name": "disableSSE",
      "id": "disableSSE",
      "type": "EmrConfiguration",
      "classification": "emrfs-site",
      "property": [{
        "ref": "enableServerSideEncryption"
      }
      ]
    },
    {
      "name": "enableServerSideEncryption",
      "id": "enableServerSideEncryption",
      "type": "Property",
      "key": "fs.s3.enableServerSideEncryption",
      "value": "false"
    }
```

# Konfigurieren Sie Hadoop KMS ACLs und erstellen Sie Verschlüsselungszonen in HDFS
<a name="emrcluster-example-hadoop-kms"></a>

**Example**  <a name="example5"></a>
Die folgenden Objekte werden ACLs für Hadoop KMS erstellt und erstellen Verschlüsselungszonen und entsprechende Verschlüsselungsschlüssel in HDFS:  

```
{
      "name": "kmsAcls",
      "id": "kmsAcls",
      "type": "EmrConfiguration",
      "classification": "hadoop-kms-acls",
      "property": [
        {"ref":"kmsBlacklist"},
        {"ref":"kmsAcl"}
      ]
    },
    {
      "name": "hdfsEncryptionZone",
      "id": "hdfsEncryptionZone",
      "type": "EmrConfiguration",
      "classification": "hdfs-encryption-zones",
      "property": [
        {"ref":"hdfsPath1"},
        {"ref":"hdfsPath2"}
      ]
    },
    {
      "name": "kmsBlacklist",
      "id": "kmsBlacklist",
      "type": "Property",
      "key": "hadoop.kms.blacklist.CREATE",
      "value": "foo,myBannedUser"
    },
    {
      "name": "kmsAcl",
      "id": "kmsAcl",
      "type": "Property",
      "key": "hadoop.kms.acl.ROLLOVER",
      "value": "myAllowedUser"
    },
    {
      "name": "hdfsPath1",
      "id": "hdfsPath1",
      "type": "Property",
      "key": "/myHDFSPath1",
      "value": "path1_key"
    },
    {
      "name": "hdfsPath2",
      "id": "hdfsPath2",
      "type": "Property",
      "key": "/myHDFSPath2",
      "value": "path2_key"
    }
```

# Festlegen benutzerdefinierter IAM-Rollen
<a name="emrcluster-example-custom-iam-roles"></a>

**Example**  <a name="example6"></a>
Wird standardmäßig `DataPipelineDefaultRole` als Amazon EMR-Servicerolle und `DataPipelineDefaultResourceRole` als Amazon EC2 EC2-Instance-Profil AWS Data Pipeline übergeben, um Ressourcen in Ihrem Namen zu erstellen. Sie können jedoch eine benutzerdefinierte Amazon EMR-Servicerolle und ein benutzerdefiniertes Instance-Profil erstellen und diese stattdessen verwenden. AWS Data Pipeline sollte über ausreichende Berechtigungen verfügen, um Cluster mithilfe der benutzerdefinierten Rolle zu erstellen, und Sie müssen sie AWS Data Pipeline als vertrauenswürdige Entität hinzufügen.  
Das folgende Beispielobjekt spezifiziert benutzerdefinierte Rollen für den Amazon EMR-Cluster:  

```
{  
   "id":"MyEmrCluster",
   "type":"EmrCluster",
   "hadoopVersion":"2.x",
   "keyPair":"my-key-pair",
   "masterInstanceType":"m3.xlarge",
   "coreInstanceType":"m3.large",
   "coreInstanceCount":"10",
   "taskInstanceType":"m3.large",
   "taskInstanceCount":"10",
   "role":"emrServiceRole",
   "resourceRole":"emrInstanceProfile"
}
```

# Verwenden Sie die EmrCluster Ressource im AWS SDK for Java
<a name="emrcluster-example-java"></a>

**Example**  <a name="example7"></a>
Das folgende Beispiel zeigt, wie Sie mit einem `EmrCluster` und `EmrActivity` einen Amazon EMR 4.x-Cluster erstellen, um einen Spark-Schritt mithilfe des Java-SDK auszuführen:  

```
public class dataPipelineEmr4 {

  public static void main(String[] args) {
    
	AWSCredentials credentials = null;
	credentials = new ProfileCredentialsProvider("/path/to/AwsCredentials.properties","default").getCredentials();
	DataPipelineClient dp = new DataPipelineClient(credentials);
	CreatePipelineRequest createPipeline = new CreatePipelineRequest().withName("EMR4SDK").withUniqueId("unique");
	CreatePipelineResult createPipelineResult = dp.createPipeline(createPipeline);
	String pipelineId = createPipelineResult.getPipelineId();
    
	PipelineObject emrCluster = new PipelineObject()
	    .withName("EmrClusterObj")
	    .withId("EmrClusterObj")
	    .withFields(
			new Field().withKey("releaseLabel").withStringValue("emr-4.1.0"),
			new Field().withKey("coreInstanceCount").withStringValue("3"),
			new Field().withKey("applications").withStringValue("spark"),
			new Field().withKey("applications").withStringValue("Presto-Sandbox"),
			new Field().withKey("type").withStringValue("EmrCluster"),
			new Field().withKey("keyPair").withStringValue("myKeyName"),
			new Field().withKey("masterInstanceType").withStringValue("m3.xlarge"),
			new Field().withKey("coreInstanceType").withStringValue("m3.xlarge")        
			);
  
	PipelineObject emrActivity = new PipelineObject()
	    .withName("EmrActivityObj")
	    .withId("EmrActivityObj")
	    .withFields(
			new Field().withKey("step").withStringValue("command-runner.jar,spark-submit,--executor-memory,1g,--class,org.apache.spark.examples.SparkPi,/usr/lib/spark/lib/spark-examples.jar,10"),
			new Field().withKey("runsOn").withRefValue("EmrClusterObj"),
			new Field().withKey("type").withStringValue("EmrActivity")
			);
      
	PipelineObject schedule = new PipelineObject()
	    .withName("Every 15 Minutes")
	    .withId("DefaultSchedule")
	    .withFields(
			new Field().withKey("type").withStringValue("Schedule"),
			new Field().withKey("period").withStringValue("15 Minutes"),
			new Field().withKey("startAt").withStringValue("FIRST_ACTIVATION_DATE_TIME")
			);
      
	PipelineObject defaultObject = new PipelineObject()
	    .withName("Default")
	    .withId("Default")
	    .withFields(
			new Field().withKey("failureAndRerunMode").withStringValue("CASCADE"),
			new Field().withKey("schedule").withRefValue("DefaultSchedule"),
			new Field().withKey("resourceRole").withStringValue("DataPipelineDefaultResourceRole"),
			new Field().withKey("role").withStringValue("DataPipelineDefaultRole"),
			new Field().withKey("pipelineLogUri").withStringValue("s3://myLogUri"),
			new Field().withKey("scheduleType").withStringValue("cron")
			);     
      
	List<PipelineObject> pipelineObjects = new ArrayList<PipelineObject>();
    
	pipelineObjects.add(emrActivity);
	pipelineObjects.add(emrCluster);
	pipelineObjects.add(defaultObject);
	pipelineObjects.add(schedule);
    
	PutPipelineDefinitionRequest putPipelineDefintion = new PutPipelineDefinitionRequest()
	    .withPipelineId(pipelineId)
	    .withPipelineObjects(pipelineObjects);
    
	PutPipelineDefinitionResult putPipelineResult = dp.putPipelineDefinition(putPipelineDefintion);
	System.out.println(putPipelineResult);
    
	ActivatePipelineRequest activatePipelineReq = new ActivatePipelineRequest()
	    .withPipelineId(pipelineId);
	ActivatePipelineResult activatePipelineRes = dp.activatePipeline(activatePipelineReq);
	
      System.out.println(activatePipelineRes);
      System.out.println(pipelineId);
    
    }

}
```

# Einen Amazon EMR-Cluster in einem privaten Subnetz konfigurieren
<a name="emrcluster-example-private-subnet"></a>

**Example**  <a name="example8"></a>
Dieses Beispiel enthält eine Konfiguration, mit der der Cluster in einem privaten Subnetz in einer VPC gestartet wird. Weitere Informationen finden Sie unter [Starten von Amazon EMR-Clustern in einer VPC](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-vpc-launching-job-flows.html) im *Amazon EMR* Management Guide. Diese Konfiguration ist optional. Sie können sie in einer beliebigen Pipeline verwenden, die ein `EmrCluster`-Objekt nutzt.  
Um einen Amazon EMR-Cluster in einem privaten Subnetz zu starten, geben Sie`SubnetId`, `emrManagedMasterSecurityGroupId``emrManagedSlaveSecurityGroupId`, und `serviceAccessSecurityGroupId` in Ihrer `EmrCluster` Konfiguration an.  

```
{
  "objects": [
    {
      "output": {
        "ref": "S3BackupLocation"
      },
      "input": {
        "ref": "DDBSourceTable"
      },
      "maximumRetries": "2",
      "name": "TableBackupActivity",
      "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}",
      "id": "TableBackupActivity",
      "runsOn": {
        "ref": "EmrClusterForBackup"
      },
      "type": "EmrActivity",
      "resizeClusterBeforeRunning": "false"
    },
    {
      "readThroughputPercent": "#{myDDBReadThroughputRatio}",
      "name": "DDBSourceTable",
      "id": "DDBSourceTable",
      "type": "DynamoDBDataNode",
      "tableName": "#{myDDBTableName}"
    },
    {
      "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
      "name": "S3BackupLocation",
      "id": "S3BackupLocation",
      "type": "S3DataNode"
    },
    {
      "name": "EmrClusterForBackup",
      "coreInstanceCount": "1",
      "taskInstanceCount": "1",
      "taskInstanceType": "m4.xlarge",
      "coreInstanceType": "m4.xlarge",
      "releaseLabel": "emr-4.7.0",
      "masterInstanceType": "m4.xlarge",
      "id": "EmrClusterForBackup",
      "subnetId": "#{mySubnetId}",
      "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}",
      "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}",
      "serviceAccessSecurityGroupId": "#{myServiceAccessSecurityGroup}",
      "region": "#{myDDBRegion}",
      "type": "EmrCluster",
      "keyPair": "user-key-pair"
    },
    {
      "failureAndRerunMode": "CASCADE",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "#{myPipelineLogUri}",
      "scheduleType": "ONDEMAND",
      "name": "Default",
      "id": "Default"
    }
  ],
  "parameters": [
    {
      "description": "Output S3 folder",
      "id": "myOutputS3Loc",
      "type": "AWS::S3::ObjectKey"
    },
    {
      "description": "Source DynamoDB table name",
      "id": "myDDBTableName",
      "type": "String"
    },
    {
      "default": "0.25",
      "watermark": "Enter value between 0.1-1.0",
      "description": "DynamoDB read throughput ratio",
      "id": "myDDBReadThroughputRatio",
      "type": "Double"
    },
    {
      "default": "us-east-1",
      "watermark": "us-east-1",
      "description": "Region of the DynamoDB table",
      "id": "myDDBRegion",
      "type": "String"
    }
  ],
  "values": {
     "myDDBRegion": "us-east-1",
      "myDDBTableName": "ddb_table",
      "myDDBReadThroughputRatio": "0.25",
      "myOutputS3Loc": "s3://s3_path",
      "mySubnetId": "subnet_id",
      "myServiceAccessSecurityGroup":  "service access security group",
      "mySlaveSecurityGroup": "slave security group",
      "myMasterSecurityGroup": "master security group",
      "myPipelineLogUri": "s3://s3_path"
  }
}
```

# EBS-Volumes zu Cluster-Knoten hinzufügen
<a name="emrcluster-example-ebs"></a>

**Example**  <a name="example8"></a>
Sie können EBS-Volumes an beliebige Knoten im EMR-Cluster innerhalb der Pipeline anfügen. Verwenden Sie zum Anfügen von EBS-Volumes an Knoten `coreEbsConfiguration`, `masterEbsConfiguration` und `TaskEbsConfiguration` in Ihrer `EmrCluster`-Konfiguration.   
Dieses Beispiel für den Amazon EMR-Cluster verwendet Amazon EBS-Volumes für seine Master-, Task- und Core-Knoten. Weitere Informationen finden Sie unter [Amazon EBS-Volumes in Amazon EMR](https://docs.aws.amazon.com/emr/latest/ManagementGuide/emr-plan-storage.html) im *Amazon EMR* Management Guide.  
Diese Konfigurationen sind optional. Sie können sie in beliebigen Pipelines verwenden, die ein `EmrCluster`-Objekt nutzen.  
Klicken Sie in der Pipeline auf die `EmrCluster`-Objektkonfiguration und dann auf **Master EBS Configuration** (Master-EBS-Konfiguration), **Core EBS Configuration** (Core-EBS-Konfiguration) oder **Task EBS Configuration** (Aufgaben-EBS-Konfiguration) und geben Sie die Konfigurationsdetails wie im folgenden Beispiel ein.  

```
{
  "objects": [
    {
      "output": {
        "ref": "S3BackupLocation"
      },
      "input": {
        "ref": "DDBSourceTable"
      },
      "maximumRetries": "2",
      "name": "TableBackupActivity",
      "step": "s3://dynamodb-emr-#{myDDBRegion}/emr-ddb-storage-handler/2.1.0/emr-ddb-2.1.0.jar,org.apache.hadoop.dynamodb.tools.DynamoDbExport,#{output.directoryPath},#{input.tableName},#{input.readThroughputPercent}",
      "id": "TableBackupActivity",
      "runsOn": {
        "ref": "EmrClusterForBackup"
      },
      "type": "EmrActivity",
      "resizeClusterBeforeRunning": "false"
    },
    {
      "readThroughputPercent": "#{myDDBReadThroughputRatio}",
      "name": "DDBSourceTable",
      "id": "DDBSourceTable",
      "type": "DynamoDBDataNode",
      "tableName": "#{myDDBTableName}"
    },
    {
      "directoryPath": "#{myOutputS3Loc}/#{format(@scheduledStartTime, 'YYYY-MM-dd-HH-mm-ss')}",
      "name": "S3BackupLocation",
      "id": "S3BackupLocation",
      "type": "S3DataNode"
    },
    {
      "name": "EmrClusterForBackup",
      "coreInstanceCount": "1",
      "taskInstanceCount": "1",
      "taskInstanceType": "m4.xlarge",
      "coreInstanceType": "m4.xlarge",
      "releaseLabel": "emr-4.7.0",
      "masterInstanceType": "m4.xlarge",
      "id": "EmrClusterForBackup",
      "subnetId": "#{mySubnetId}",
      "emrManagedMasterSecurityGroupId": "#{myMasterSecurityGroup}",
      "emrManagedSlaveSecurityGroupId": "#{mySlaveSecurityGroup}",
      "region": "#{myDDBRegion}",
      "type": "EmrCluster",
      "coreEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "masterEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "taskEbsConfiguration": {
        "ref": "EBSConfiguration"
      },
      "keyPair": "user-key-pair"
    },
    {
       "name": "EBSConfiguration",
        "id": "EBSConfiguration",
        "ebsOptimized": "true",
        "ebsBlockDeviceConfig" : [
            { "ref": "EbsBlockDeviceConfig" }
        ],
        "type": "EbsConfiguration"
    },
    {
        "name": "EbsBlockDeviceConfig",
        "id": "EbsBlockDeviceConfig",
        "type": "EbsBlockDeviceConfig",
        "volumesPerInstance" : "2",
        "volumeSpecification" : {
            "ref": "VolumeSpecification"
        }
    },
    {
      "name": "VolumeSpecification",
      "id": "VolumeSpecification",
      "type": "VolumeSpecification",
      "sizeInGB": "500",
      "volumeType": "io1",
      "iops": "1000"
    },
    {
      "failureAndRerunMode": "CASCADE",
      "resourceRole": "DataPipelineDefaultResourceRole",
      "role": "DataPipelineDefaultRole",
      "pipelineLogUri": "#{myPipelineLogUri}",
      "scheduleType": "ONDEMAND",
      "name": "Default",
      "id": "Default"
    }
  ],
  "parameters": [
    {
      "description": "Output S3 folder",
      "id": "myOutputS3Loc",
      "type": "AWS::S3::ObjectKey"
    },
    {
      "description": "Source DynamoDB table name",
      "id": "myDDBTableName",
      "type": "String"
    },
    {
      "default": "0.25",
      "watermark": "Enter value between 0.1-1.0",
      "description": "DynamoDB read throughput ratio",
      "id": "myDDBReadThroughputRatio",
      "type": "Double"
    },
    {
      "default": "us-east-1",
      "watermark": "us-east-1",
      "description": "Region of the DynamoDB table",
      "id": "myDDBRegion",
      "type": "String"
    }
  ],
  "values": {
     "myDDBRegion": "us-east-1",
      "myDDBTableName": "ddb_table",
      "myDDBReadThroughputRatio": "0.25",
      "myOutputS3Loc": "s3://s3_path",
      "mySubnetId": "subnet_id",
      "mySlaveSecurityGroup": "slave security group",
      "myMasterSecurityGroup": "master security group",
      "myPipelineLogUri": "s3://s3_path"
  }
}
```

## Weitere Informationen finden Sie unter:
<a name="emrcluster-seealso"></a>
+ [EmrActivity](dp-object-emractivity.md)