Kurzanleitung: Java und Apache Maven verwenden

Auf dieser Seite erfahren Sie, wie Sie Ihr Google Cloud-Projekt einrichten, ein Maven-Projekt mit dem Apache Beam SDK erstellen und eine Beispielpipeline im Dataflow-Dienst ausführen.

Vorbereitung

  1. Melden Sie sich bei Ihrem Google-Konto an.

    Wenn Sie noch kein Konto haben, melden Sie sich hier für ein neues Konto an.

  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für Ihr Projekt aktiviert ist.

  4. Cloud Dataflow, Compute Engine, Stackdriver Logging, Cloud Storage, Cloud Storage JSON, BigQuery, Cloud Pub/Sub und Cloud Resource Manager APIs aktivieren.

    Aktivieren Sie die APIs

  5. Authentifizierung einrichten:
    1. Wechseln Sie in der Cloud Console zur Seite Dienstkontoschlüssel erstellen.

      Zur Seite „Dienstkontoschlüssel erstellen“
    2. Wählen Sie aus der Liste Dienstkonto die Option Neues Dienstkonto aus.
    3. Geben Sie im Feld Dienstkontoname einen Namen ein.
    4. Wählen Sie in der Liste Rolle die Option Projekt > Inhaber

    5. Klicken Sie auf Erstellen. Eine JSON-Datei mit Ihrem Schlüssel wird auf Ihren Computer heruntergeladen.
  6. Legen Sie für die Umgebungsvariable GOOGLE_APPLICATION_CREDENTIALS den Pfad der JSON-Datei fest, die Ihren Dienstkontoschlüssel enthält. Diese Variable gilt nur für Ihre aktuelle Shellsitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable noch einmal festlegen.

  7. Cloud Storage-Bucket erstellen:
    1. Wechseln Sie in der Cloud Console zum Cloud Storage-Browser.

      Zum Cloud Storage-Browser

    2. Klicken Sie auf Bucket erstellen.
    3. Geben Sie im Dialogfeld Bucket erstellen die folgenden Attribute an:
      • Name: Eindeutiger Bucket-Name. Der Bucket-Name darf keine vertraulichen Informationen enthalten, da der Bucket-Namespace global und öffentlich sichtbar ist.
      • Standardspeicherklase: Standard
      • Ein Standort, an dem Bucket-Daten gespeichert werden.
    4. Klicken Sie auf Erstellen.
  8. Laden Sie das Java Development Kit (JDK) Version 8 herunter und installieren Sie es. Prüfen Sie, ob die Umgebungsvariable JAVA_HOME festgelegt ist und auf Ihre JDK-Installation verweist.
  9. Laden Sie Apache Maven herunter und installieren Sie es entsprechend der Maven-Installationsanleitung für Ihr Betriebssystem.

WordCount-Code abrufen

Das Apache Beam SDK ist ein Open-Source-Programmiermodell für Datenpipelines. Sie definieren diese Pipelines mit einem Apache Beam-Programm und können einen Runner wie Dataflow zum Ausführen Ihrer Pipeline auswählen.

Erstellen Sie mithilfe des Maven Archetype-Plug-ins ein Maven-Projekt, das das Apache Beam SDK enthält. Führen Sie in einem Verzeichnis auf Ihrem Computer den Befehl mvn archetype:generate in der Shell oder dem Terminal so aus:

$ mvn archetype:generate \
      -DarchetypeGroupId=org.apache.beam \
      -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \
      -DarchetypeVersion=2.24.0 \
      -DgroupId=org.example \
      -DartifactId=word-count-beam \
      -Dversion="0.1" \
      -Dpackage=org.apache.beam.examples \
      -DinteractiveMode=false

Nachdem Sie den Befehl ausgeführt haben, sollte ein neues Verzeichnis namens word-count-beam unter dem derzeitigen Verzeichnis angezeigt werden. word-count-beam enthält eine einfache pom.xml-Datei und eine Reihe von Beispielpipelines, mit denen Wörter in Textdateien gezählt werden.

$ cd word-count-beam/

$ ls
pom.xml	src

$ ls src/main/java/org/apache/beam/examples/
DebuggingWordCount.java	WindowedWordCount.java	common
MinimalWordCount.java	WordCount.java

Eine detaillierte Einführung in die Apache Beam-Konzepte, die in diesen Beispielen verwendet werden, finden Sie in der Beispielanleitung für WordCount. Im folgenden Beispiel wird WordCount.java ausgeführt.

WordCount lokal ausführen

Führen Sie WordCount lokal aus. Dazu führen Sie den folgenden Befehl in Ihrem Verzeichnis word-count-beam aus:

$ mvn compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--output=counts"
Die Ausgabedateien haben das Präfix counts und werden in das Verzeichnis word-count-beam geschrieben. Sie enthalten eindeutige Wörter aus dem Eingabetext und wie oft jedes Wort vorkommt.

WordCount im Dataflow-Dienst ausführen

Erstellen Sie WordCount im Dataflow-Dienst und führen Sie es aus:

  • Geben Sie für das Argument --project die Projekt-ID des von Ihnen erstellten Google Cloud-Projekts an.
  • Geben Sie für die Argumente --stagingLocation und --output den Namen des Cloud Storage-Buckets an, den Sie als Teil des Pfades erstellt haben.

  • Geben Sie für das Argument --region einen regionalen Dataflow-Endpunkt an.
$ mvn -Pdataflow-runner compile exec:java \
      -Dexec.mainClass=org.apache.beam.examples.WordCount \
      -Dexec.args="--project=<PROJECT_ID> \
      --stagingLocation=gs://<STORAGE_BUCKET>/staging/ \
      --output=gs://<STORAGE_BUCKET>/output \
      --runner=DataflowRunner \
      --region=<REGION>"

Ergebnisse ansehen

  1. Öffnen Sie die Dataflow-Web-UI.
    Zur Dataflow-Web-UI

    Ihr Job wordcount sollte zuerst den Status Running (Wird ausgeführt) und dann Succeeded (Erfolgreich) haben:

    Cloud Dataflow-Jobs
  2. Öffnen Sie den Cloud Storage-Browser in der Google Cloud Console.
    Zum Cloud Storage-Browser

    In Ihrem Bucket sollten Sie die Ausgabedateien und die Staging-Dateien sehen, die von Ihrem Job erstellt wurden:

    Cloud Storage-Bucket

Bereinigen

So vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Kurzanleitung verwendeten Ressourcen in Rechnung gestellt werden:

  1. Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Browser.

    Zum Cloud Storage-Browser

  2. Klicken Sie auf das Kästchen neben dem Bucket, der gelöscht werden soll.
  3. Klicken Sie zum Löschen des Buckets auf Löschen .

Weitere Informationen