E nd-to-end Beispiel für Amazon EMR Java-Quellcode - Amazon EMR

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.

E nd-to-end Beispiel für Amazon EMR Java-Quellcode

Entwickler können die Amazon-EMR-API über benutzerdefinierten Java-Code aufrufen, um die über die Amazon-EMR-Konsole und CLI verfügbaren Funktionen zu nutzen. Dieser Abschnitt enthält die end-to-end Schritte, die für die Installation AWS Toolkit for Eclipse und Ausführung eines voll funktionsfähigen Java-Quellcode-Beispiels erforderlich sind, das Schritte zu einem Amazon EMR-Cluster hinzufügt.

Anmerkung

Dieses Beispiel konzentriert sich auf Java. Amazon EMR unterstützt über verschiedene Amazon-EMR-SDKs jedoch auch andere Programmiersprachen. Weitere Informationen finden Sie unter So verwenden Sie SDKs zum Aufrufen von Amazon-EMR-APIs.

In diesem Java-Beispiel wird gezeigt, wie die folgenden Aufgaben mit der Amazon-EMR-API durchgeführt werden:

  • AWS Anmeldeinformationen abrufen und an Amazon EMR senden, um API-Aufrufe zu tätigen

  • Konfigurieren eines neuen, benutzerdefinierten Schritts und eines neuen, vordefinierten Schritts

  • Hinzufügen neuer Schritte zu einem vorhandenen Amazon-EMR-Cluster

  • Abrufen der Cluster-Schritt-IDs aus einem ausgeführten Cluster

Anmerkung

In diesem Beispiel wird gezeigt, wie Sie Schritte zu einem vorhandene, Cluster hinzufügen. Daher ist ein aktiver Cluster in Ihrem Konto erforderlich.

Bevor Sie beginnen, installieren Sie die Version von Eclipse IDE for Java EE Developers, die Ihrer Plattform entspricht. Weitere Informationen erhalten Sie unter Eclipse-Downloads.

Als Nächstes installieren Sie das Database Development Plug-in für Eclipse.

So installieren Sie das Database Development Plug-in für Eclipse
  1. Öffnen Sie die Eclipse-IDE.

  2. Wählen Sie Help (Hilfe) und dann Install New Software (Neue Software installieren) aus.

  3. Geben Sie im Feld Work with: (Arbeiten mit:) http://download.eclipse.org/releases/kepler oder den Pfad ein, der der Versionsnummer Ihrer Eclipse IDE entspricht.

  4. Wählen Sie in der Liste Database Development (Datenbankentwicklung) und Finish (Fertig stellen) aus.

  5. Starten Sie Eclipse neu, wenn Sie dazu aufgefordert werden.

Als Nächstes installieren Sie das Toolkit für Eclipse, um hilfreiche, vorkonfigurierte Quellcode-Projektvorlagen nutzen zu können.

So installieren Sie das Toolkit für Eclipse
  1. Öffnen Sie die Eclipse-IDE.

  2. Wählen Sie Help (Hilfe) und dann Install New Software (Neue Software installieren) aus.

  3. Geben Sie im Feld Work with: (Arbeiten mit:) https://aws.amazon.com/eclipse ein.

  4. Wählen Sie in der Artikelliste die Option AWS Toolkit for Eclipse und Fertigstellen aus.

  5. Starten Sie Eclipse neu, wenn Sie dazu aufgefordert werden.

Erstellen Sie als Nächstes ein neues AWS Java-Projekt und führen Sie den Java-Beispielquellcode aus.

Um ein neues AWS Java-Projekt zu erstellen
  1. Öffnen Sie die Eclipse-IDE.

  2. Wählen Sie File (Datei), New (Neu) und Other (Sonstiges) aus.

  3. Wählen Sie im Dialogfeld Einen Assistenten auswählen AWS -Java-Projekt und Weiter aus.

  4. Geben Sie im Dialogfeld Neues AWS Java-Projekt in das Project name: Feld beispielsweise den Namen Ihres neuen Projekts einEMR-sample-code.

  5. Wählen Sie AWS Konten konfigurieren..., geben Sie Ihre öffentlichen und privaten Zugangsschlüssel ein und wählen Sie Fertig stellen. Weitere Informationen zum Erstellen von Zugriffsschlüsseln finden Sie unter Wie erhalte ich Sicherheitsanmeldeinformationen? in Allgemeine Amazon-Web-Services-Referenz.

    Anmerkung

    Sie sollten Zugriffsschlüssel nicht direkt in den Code einbetten. Das Amazon-EMR-SDK ermöglicht es Ihnen, Zugriffsschlüssel in bekannten Speicherorten abzulegen, sodass Sie sie nicht in den Code integrieren müssen.

  6. Klicken Sie im neuen Java-Projekt mit der rechten Maustaste auf den src--Ordner und wählen Sie dann New (Neu) und Class (Klasse) aus.

  7. Geben Sie im Dialogfeld Java Class (Java-Klasse) in das Feld Name einen Namen für Ihre neue Klasse ein (z. B. main).

  8. Wählen Sie im Abschnitt Which method stubs would you like to create? (Welche Method-Stubs möchten Sie erstellen?) public static void main (String [] args) und Finish (Fertig stellen) aus.

  9. Geben Sie den Java-Quellcode in Ihrer neuen Klasse ein und fügen Sie die entsprechenden import (Importieren)-Anweisungen für die Klassen und Methoden des Beispiels hinzu. Den vollständigen Quellcode finden Sie unten.

    Anmerkung

    Ersetzen Sie im folgenden Beispielcode die Beispiel-Cluster-ID (JobFlowId) j-xxxxxxxxxxxx, durch eine gültige Cluster-ID in Ihrem Konto, die Sie entweder in AWS Management Console oder finden, indem Sie den folgenden AWS CLI Befehl verwenden:

    aws emr list-clusters --active | grep "Id"

    Ersetzen Sie außerdem den Amazon-S3-Beispielpfad s3://path/to/my/jarfolder durch den gültigen Pfad der JAR-Datei. Ersetzen Sie den Beispiel-Klassennamen (com.my.Main1) durch den richtigen Namen der Klasse in der JAR-Datei (falls relevant).

    import com.amazonaws.AmazonClientException; import com.amazonaws.auth.AWSCredentials; import com.amazonaws.auth.AWSStaticCredentialsProvider; import com.amazonaws.auth.profile.ProfileCredentialsProvider; import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduce; import com.amazonaws.services.elasticmapreduce.AmazonElasticMapReduceClientBuilder; import com.amazonaws.services.elasticmapreduce.model.*; import com.amazonaws.services.elasticmapreduce.util.StepFactory; public class Main { public static void main(String[] args) { AWSCredentials credentials_profile = null; try { credentials_profile = new ProfileCredentialsProvider("default").getCredentials(); } catch (Exception e) { throw new AmazonClientException( "Cannot load credentials from .aws/credentials file. " + "Make sure that the credentials file exists and the profile name is specified within it.", e); } AmazonElasticMapReduce emr = AmazonElasticMapReduceClientBuilder.standard() .withCredentials(new AWSStaticCredentialsProvider(credentials_profile)) .withRegion(Regions.US_WEST_1) .build(); // Run a bash script using a predefined step in the StepFactory helper class StepFactory stepFactory = new StepFactory(); StepConfig runBashScript = new StepConfig() .withName("Run a bash script") .withHadoopJarStep(stepFactory.newScriptRunnerStep("s3://jeffgoll/emr-scripts/create_users.sh")) .withActionOnFailure("CONTINUE"); // Run a custom jar file as a step HadoopJarStepConfig hadoopConfig1 = new HadoopJarStepConfig() .withJar("s3://path/to/my/jarfolder") // replace with the location of the jar to run as a step .withMainClass("com.my.Main1") // optional main class, this can be omitted if jar above has a manifest .withArgs("--verbose"); // optional list of arguments to pass to the jar StepConfig myCustomJarStep = new StepConfig("RunHadoopJar", hadoopConfig1); AddJobFlowStepsResult result = emr.addJobFlowSteps(new AddJobFlowStepsRequest() .withJobFlowId("j-xxxxxxxxxxxx") // replace with cluster id to run the steps .withSteps(runBashScript, myCustomJarStep)); System.out.println(result.getStepIds()); } }
  10. Wählen Sie Run (Ausführen), Run As (Ausführen als) und Java Application (Java-Anwendung) aus.

  11. Wenn das Beispiel korrekt ausgeführt wird, wird eine Liste der IDs für die neuen Schritte in der Eclipse-IDE-Konsole angezeigt. Die korrekte Ausgabe sieht folgendermaßen oder ähnlich aus:

    [s-39BLQZRJB2E5E, s-1L6A4ZU2SAURC]