

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.

# Erste Schritte mit Amazon EMR auf EKS
<a name="getting-started"></a>

Dieses Thema hilft Ihnen bei den ersten Schritten mit Amazon EMR in EKS, indem Sie eine Spark-Anwendung auf einem virtuellen Cluster bereitstellen. Es umfasst Schritte zum Einrichten der richtigen Berechtigungen und zum Starten eines Jobs. Bevor Sie beginnen, sollten Sie sicherstellen, dass Sie die in [Einrichten von Amazon EMR in EKS](setting-up.md) beschriebenen Schritte ausgeführt haben. Auf diese Weise können Sie Tools wie das AWS CLI Setup vor der Erstellung Ihres virtuellen Clusters abrufen. Weitere Vorlagen, die Ihnen den Einstieg erleichtern können, finden Sie in unserem [EMR Containers Best Practices Guide](https://aws.github.io/aws-emr-containers-best-practices/) unter GitHub.

Sie benötigen die folgenden Informationen aus den Einrichtungsschritten:
+ Virtuelle Cluster-ID für den Amazon-EKS-Cluster und den Kubernetes-Namespace, die bei Amazon EMR registriert sind
**Wichtig**  
Achten Sie beim Erstellen eines EKS-Clusters darauf, m5.xlarge als Instance-Typ oder einen anderen Instance-Typ mit einer höheren CPU und einem höheren Arbeitsspeicher zu verwenden. Die Verwendung eines Instance-Typs mit weniger CPU oder Arbeitsspeicher als m5.xlarge kann aufgrund unzureichender verfügbarer Ressourcen im Cluster zu einem Auftragsfehler führen.
+ Name der IAM-Rolle, die für die Auftragsausführung verwendet wird
+ Release-Label für die Amazon-EMR-Version (z. B.`emr-6.4.0-latest`)
+ Zielziele für die Protokollierung und Überwachung:
  +  CloudWatch Amazon-Protokollgruppenname und Logstream-Präfix
  + Amazon-S3-Standort zum Speichern von Ereignis- und Containerprotokollen

**Wichtig**  
Amazon EMR on EKS-Jobs verwenden Amazon CloudWatch und Amazon S3 als Zielziele für die Überwachung und Protokollierung. Sie können den Aufgabenfortschritt überwachen und Fehler beheben, indem Sie sich die an diese Ziele gesendeten Aufgabenprotokolle ansehen. Um die Protokollierung zu aktivieren, muss die IAM-Richtlinie, die der IAM-Rolle für die Aufgabenausführung zugeordnet ist, über die erforderlichen Berechtigungen für den Zugriff auf die Zielressourcen verfügen. Wenn die IAM-Richtlinie nicht über die erforderlichen Berechtigungen verfügt, müssen Sie die unter Konfiguration einer Auftragsausführung zur Verwendung von [Amazon S3 S3-Protokollen und Konfiguration einer Auftragsausführung zur Verwendung von CloudWatch Protokollen](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) [beschriebenen Schritte ausführen, bevor Sie](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch) diesen Beispielauftrag ausführen. [Die Vertrauensrichtlinie der Auftragsausführungsrolle aktualisieren](setting-up-trust-policy.md)

## Eine Spark-Anwendung ausführen
<a name="getting-started-run-spark-app"></a>

Führen Sie die folgenden Schritte aus, um eine einfache Spark-Anwendung bei Amazon EMR in EKS auszuführen. Die `entryPoint`-Anwendungsdatei für eine Spark-Python-Anwendung befindet sich unter `s3://REGION.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py`. Das *REGION* ist die Region, in der sich Ihr virtueller Amazon EMR on EKS-Cluster befindet, z. B. *us-east-1*

1. Aktualisieren Sie die IAM-Richtlinie für die Auftragausführungsrolle mit den erforderlichen Berechtigungen, wie die folgenden Richtlinienerklärungen zeigen. 

------
#### [ JSON ]

****  

   ```
   {
     "Version":"2012-10-17",		 	 	 
     "Statement": [
       {
         "Sid": "ReadFromLoggingAndInputScriptBuckets",
         "Effect": "Allow",
         "Action": [
           "s3:GetObject",
           "s3:ListBucket"
         ],
         "Resource": [
           "arn:aws:s3:::*.elasticmapreduce",
           "arn:aws:s3:::*.elasticmapreduce/*",
           "arn:aws:s3:::amzn-s3-demo-bucket",
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket-b",
           "arn:aws:s3:::amzn-s3-demo-bucket-b/*"
         ]
       },
       {
         "Sid": "WriteToLoggingAndOutputDataBuckets",
         "Effect": "Allow",
         "Action": [
           "s3:PutObject",
           "s3:DeleteObject"
         ],
         "Resource": [
           "arn:aws:s3:::amzn-s3-demo-bucket/*",
           "arn:aws:s3:::amzn-s3-demo-bucket-b/*"
         ]
       },
       {
         "Sid": "DescribeAndCreateCloudwatchLogStream",
         "Effect": "Allow",
         "Action": [
           "logs:CreateLogStream",
           "logs:DescribeLogGroups",
           "logs:DescribeLogStreams"
         ],
         "Resource": [
           "arn:aws:logs:*:*:*"
         ]
       },
       {
         "Sid": "WriteToCloudwatchLogs",
         "Effect": "Allow",
         "Action": [
           "logs:PutLogEvents"
         ],
         "Resource": [
           "arn:aws:logs:*:*:log-group:my_log_group_name:log-stream:my_log_stream_prefix/*"
         ]
       }
     ]
   }
   ```

------
   + Die erste Anweisung `ReadFromLoggingAndInputScriptBuckets` in dieser Richtlinie gewährt `ListBucket` und `GetObjects` Zugriff auf die folgenden Amazon-S3-Buckets: 
     + `REGION.elasticmapreduce` – der Bucket, in dem sich die `entryPoint` Anwendungsdatei befindet.
     + *amzn-s3-demo-destination-bucket*‐ ein Bucket, das Sie für Ihre Ausgabedaten definieren. 
     + *amzn-s3-demo-logging-bucket*‐ ein Bucket, das Sie für Ihre Logging-Daten definieren. 
   + Die zweite Anweisung `WriteToLoggingAndOutputDataBuckets` in dieser Richtlinie erteilt dem Auftrag die Erlaubnis, Daten in Ihre Ausgabe- bzw. Protokollierungs-Buckets zu schreiben. 
   + Die dritte Anweisung `DescribeAndCreateCloudwatchLogStream` erteilt dem Job die Erlaubnis, Amazon CloudWatch Logs zu beschreiben und zu erstellen.
   + Die vierte Anweisung `WriteToCloudwatchLogs` gewährt Berechtigungen zum Schreiben von Protokollen in eine CloudWatch Amazon-Protokollgruppe, die *`my_log_group_name`* unter einem Protokollstream namens benannt ist*`my_log_stream_prefix`*.

1. Verwenden Sie den folgenden Befehl, um eine Spark-Python-Anwendung auszuführen. Ersetzen Sie alle ersetzbaren *red italicized* Werte durch entsprechende Werte. Das *REGION* ist die Region, in der sich Ihr virtueller Amazon EMR on EKS-Cluster befindet, z. B. *us-east-1*

   ```
   aws emr-containers start-job-run \
   --virtual-cluster-id cluster_id \
   --name sample-job-name \
   --execution-role-arn execution-role-arn \
   --release-label emr-6.4.0-latest \
   --job-driver '{
     "sparkSubmitJobDriver": {
       "entryPoint": "s3://REGION.elasticmapreduce/emr-containers/samples/wordcount/scripts/wordcount.py",
       "entryPointArguments": ["s3://amzn-s3-demo-destination-bucket/wordcount_output"],
       "sparkSubmitParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
     }
   }' \
   --configuration-overrides '{
     "monitoringConfiguration": {
       "cloudWatchMonitoringConfiguration": {
         "logGroupName": "my_log_group_name",
         "logStreamNamePrefix": "my_log_stream_prefix"
       },
       "s3MonitoringConfiguration": {
          "logUri": "s3://amzn-s3-demo-logging-bucket"
       }
     }
   }'
   ```

   Die Ausgabedaten dieses Aufträge sind unter `s3://amzn-s3-demo-destination-bucket/wordcount_output` verfügbar.

   Sie können auch eine JSON-Datei mit bestimmten Parametern für Ihre Auftragsausführung erstellen. Führen Sie dann den `start-job-run`-Befehl mit dem Pfad zur JSON-Datei aus. Weitere Informationen finden Sie unter [Reichen Sie einen Auftrag ein, der ausgeführt wird mit `StartJobRun`](emr-eks-jobs-submit.md). Weitere Informationen zur Konfiguration von Auftrag-Ausführungsparametern finden Sie unter [Optionen für die Konfiguration einer Aufgabenausführung](emr-eks-jobs-CLI.md#emr-eks-jobs-parameters). 

1. Verwenden Sie den folgenden Befehl, um eine Spark-SQL-Anwendung auszuführen. Ersetzen Sie alle *red italicized* Werte durch entsprechende Werte. Das *REGION* ist die Region, in der sich Ihr virtueller Amazon EMR on EKS-Cluster befindet, z. B. *us-east-1*

   ```
   aws emr-containers start-job-run \
   --virtual-cluster-id cluster_id \
   --name sample-job-name \
   --execution-role-arn execution-role-arn \
   --release-label emr-6.7.0-latest \
   --job-driver '{
     "sparkSqlJobDriver": {
       "entryPoint": "s3://query-file.sql",
       "sparkSqlParameters": "--conf spark.executor.instances=2 --conf spark.executor.memory=2G --conf spark.executor.cores=2 --conf spark.driver.cores=1"
     }
   }' \
   --configuration-overrides '{
     "monitoringConfiguration": {
       "cloudWatchMonitoringConfiguration": {
         "logGroupName": "my_log_group_name",
         "logStreamNamePrefix": "my_log_stream_prefix"
       },
       "s3MonitoringConfiguration": {
          "logUri": "s3://amzn-s3-demo-logging-bucket"
       }
     }
   }'
   ```

   Eine Beispiel-SQL-Abfragedatei ist unten dargestellt. Sie benötigen einen externen Dateispeicher wie S3, in dem die Daten für die Tabellen gespeichert werden. 

   ```
   CREATE DATABASE demo;
   CREATE EXTERNAL TABLE IF NOT EXISTS demo.amazonreview( marketplace string, customer_id string, review_id  string, product_id  string, product_parent  string, product_title  string, star_rating  integer, helpful_votes  integer, total_votes  integer, vine  string, verified_purchase  string, review_headline  string, review_body  string, review_date  date, year  integer) STORED AS PARQUET LOCATION 's3://URI to parquet files';
   SELECT count(*) FROM demo.amazonreview;
   SELECT count(*) FROM demo.amazonreview WHERE star_rating = 3;
   ```

   Die Ausgabe für diesen Job ist in den Standardprotokollen des Treibers in S3 oder CloudWatch, je nachdem, was konfiguriert ist, verfügbar. `monitoringConfiguration`

1. Sie können auch eine JSON-Datei mit bestimmten Parametern für Ihre Auftragsausführung erstellen. Führen Sie dann den start-job-run-Befehl mit dem Pfad zur JSON-Datei aus. Weitere Informationen finden Sie unter Ausführen einer Auftragsausführung. Weitere Informationen zur Konfiguration von Auftrag-Ausführungsparametern finden Sie unter Optionen für die Konfiguration einer Auftragsausführung. 

   Um den Fortschritt des Jobs zu überwachen oder Fehler zu debuggen, können Sie die in Amazon S3 hochgeladenen CloudWatch Protokolle, Logs oder beides überprüfen. Weitere Informationen zum Protokollpfad in Amazon S3 finden [Sie unter Auftragsausführung für die Verwendung von S3-Protokollen](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-s3) konfigurieren und Cloudwatch-Protokolle unter [Auftragsausführung für die Verwendung von CloudWatch Protokollen konfigurieren](https://docs.aws.amazon.com/emr/latest/EMR-on-EKS-DevelopmentGuide/emr-eks-jobs-CLI.html#emr-eks-jobs-cloudwatch). Folgen Sie den nachstehenden Anweisungen, um CloudWatch Protokolle in Logs anzuzeigen.
   + Öffnen Sie die CloudWatch Konsole unter [https://console.aws.amazon.com/cloudwatch/](https://console.aws.amazon.com/cloudwatch/).
   + Wählen Sie im **Navigationsbereich** **Protokolle** aus. Wählen Sie dann die **Protokollgruppen** aus.
   + Wählen Sie die Protokollgruppe für Amazon EMR in EKS aus und sehen Sie sich dann die hochgeladenen Protokollereignisse an.   
![\[Überwachung mithilfe von CloudWatch Protokollen\]](http://docs.aws.amazon.com/de_de/emr/latest/EMR-on-EKS-DevelopmentGuide/images/emr-on-eks-monitoring.png)

**Wichtig**  
Aufträge haben eine [Standardkonfigurierte Wiederholungsrichtlinie](jobruns-using-retry-policies.md#retry-config). Informationen zum Ändern oder Deaktivieren der Konfiguration finden Sie unter Richtlinien zur [Aufgabenwiederholung verwenden.](jobruns-using-retry-policies.md)