

Weitere AWS SDK-Beispiele sind im GitHub Repo [AWS Doc SDK Examples](https://github.com/awsdocs/aws-doc-sdk-examples) verfügbar.

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.

# Szenarien für die Verwendung von Amazon EMR AWS SDKs
<a name="emr_code_examples_scenarios"></a>

Die folgenden Codebeispiele zeigen Ihnen, wie Sie gängige Szenarien in Amazon EMR mit AWS SDKs implementieren. Diese Szenarien zeigen Ihnen, wie Sie bestimmte Aufgaben durch den Aufruf mehrerer Funktionen innerhalb von Amazon EMR oder in Kombination mit anderen AWS-Services ausführen können. Jedes Szenario enthält einen Link zum vollständigen Quell-Code, wo Sie Anleitungen zum Einrichten und Ausführen des Codes finden. 

Szenarien zielen auf eine mittlere Erfahrungsebene ab, um Ihnen zu helfen, Service-Aktionen im Kontext zu verstehen.

**Topics**
+ [Erstellen Sie einen kurzlebigen Amazon EMR-Cluster und führen Sie einen Schritt aus](emr_example_emr_Scenario_ShortLivedEmrCluster_section.md)
+ [Ausführen eines Shell-Skripts zum Installieren von Bibliotheken](emr_example_emr_Usage_InstallLibrariesWithSsm_section.md)

# Erstellen Sie einen kurzlebigen Amazon EMR-Cluster und führen Sie einen Schritt mithilfe eines SDK aus AWS
<a name="emr_example_emr_Scenario_ShortLivedEmrCluster_section"></a>

Das folgende Codebeispiel zeigt, wie Sie einen kurzlebigen Amazon EMR-Cluster erstellen, der einen Schritt ausführt und nach Abschluss des Schritts automatisch beendet wird.

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Erstellen Sie mithilfe von Apache Spark einen kurzlebigen Amazon EMR-Cluster, der den Wert von Pi schätzt, um eine große Anzahl von Berechnungen zu parallelisieren. Der Job schreibt Ausgaben in Amazon EMR-Protokolle und in einen Amazon Simple Storage Service (Amazon S3)-Bucket. Der Cluster beendet sich selbst, nachdem der Job abgeschlossen wurde.   
+ Erstellen Sie einen Amazon-S3-Bucket und uploaden Sie ein Job-Skript.
+ Erstellen Sie AWS Identity and Access Management (IAM-) Rollen.
+ Erstellen Sie Amazon Elastic Compute Cloud (Amazon EC2)-Sicherheitsgruppen.
+ Erstellen Sie einen kurzlebigen Cluster und führen Sie einen einzelnen Arbeitsschritt aus.
 Dieses Beispiel lässt sich am besten auf GitHub ansehen. Den vollständigen Quellcode und Anweisungen zur Einrichtung und Ausführung finden Sie im vollständigen Beispiel unter [GitHub](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/emr).   

**In diesem Beispiel verwendete Dienste**
+ Amazon EMR

------

# Führen Sie ein Shell-Skript aus, um Bibliotheken auf Amazon EMR-Instances mithilfe eines AWS SDK zu installieren
<a name="emr_example_emr_Usage_InstallLibrariesWithSsm_section"></a>

Das folgende Codebeispiel zeigt, wie Sie AWS Systems Manager ein Shell-Skript auf Amazon EMR-Instances ausführen, das zusätzliche Bibliotheken installiert. Auf diese Weise können Sie die Instance-Verwaltung automatisieren, anstatt Befehle manuell über eine SSH-Verbindung auszuführen.

------
#### [ Python ]

**SDK für Python (Boto3)**  
 Es gibt noch mehr dazu. GitHub Hier finden Sie das vollständige Beispiel und erfahren, wie Sie das [AWS -Code-Beispiel-](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/python/example_code/emr#code-examples) einrichten und ausführen. 

```
import argparse
import time
import boto3


def install_libraries_on_core_nodes(cluster_id, script_path, emr_client, ssm_client):
    """
    Copies and runs a shell script on the core nodes in the cluster.

    :param cluster_id: The ID of the cluster.
    :param script_path: The path to the script, typically an Amazon S3 object URL.
    :param emr_client: The Boto3 Amazon EMR client.
    :param ssm_client: The Boto3 AWS Systems Manager client.
    """
    core_nodes = emr_client.list_instances(
        ClusterId=cluster_id, InstanceGroupTypes=["CORE"]
    )["Instances"]
    core_instance_ids = [node["Ec2InstanceId"] for node in core_nodes]
    print(f"Found core instances: {core_instance_ids}.")

    commands = [
        # Copy the shell script from Amazon S3 to each node instance.
        f"aws s3 cp {script_path} /home/hadoop",
        # Run the shell script to install libraries on each node instance.
        "bash /home/hadoop/install_libraries.sh",
    ]
    for command in commands:
        print(f"Sending '{command}' to core instances...")
        command_id = ssm_client.send_command(
            InstanceIds=core_instance_ids,
            DocumentName="AWS-RunShellScript",
            Parameters={"commands": [command]},
            TimeoutSeconds=3600,
        )["Command"]["CommandId"]
        while True:
            # Verify the previous step succeeded before running the next step.
            cmd_result = ssm_client.list_commands(CommandId=command_id)["Commands"][0]
            if cmd_result["StatusDetails"] == "Success":
                print(f"Command succeeded.")
                break
            elif cmd_result["StatusDetails"] in ["Pending", "InProgress"]:
                print(f"Command status is {cmd_result['StatusDetails']}, waiting...")
                time.sleep(10)
            else:
                print(f"Command status is {cmd_result['StatusDetails']}, quitting.")
                raise RuntimeError(
                    f"Command {command} failed to run. "
                    f"Details: {cmd_result['StatusDetails']}"
                )


def main():
    parser = argparse.ArgumentParser()
    parser.add_argument("cluster_id", help="The ID of the cluster.")
    parser.add_argument("script_path", help="The path to the script in Amazon S3.")
    args = parser.parse_args()

    emr_client = boto3.client("emr")
    ssm_client = boto3.client("ssm")

    install_libraries_on_core_nodes(
        args.cluster_id, args.script_path, emr_client, ssm_client
    )


if __name__ == "__main__":
    main()
```
+  Einzelheiten zur API finden Sie [ListInstances](https://docs.aws.amazon.com/goto/boto3/elasticmapreduce-2009-03-31/ListInstances)in *AWS SDK for Python (Boto3) API* Reference. 

------