Kurzanleitung: Java und Apache Maven verwenden
In dieser Dokumentation erfahren Sie, wie Sie ein Google Cloud-Projekt einrichten, mit dem Apache Beam SDK für Java ein Maven-Projekt erstellen und eine Beispielpipeline im Dataflow-Dienst ausführen. Die Pipeline liest eine Textdatei aus Cloud Storage, zählt die Anzahl der einmaligen Wörter in der Datei und schreibt dann die Wortanzahl anschließend in Cloud Storage.
Für diese Kurzanleitung müssen Sie mit der Installation und Konfiguration von Java und Maven in Ihrer lokalen Produktionsumgebung vertraut sein. Wenn Sie einen Beispieljob ausführen möchten, ohne zuerst die Voraussetzungen in Ihrer lokalen Umgebung zu installieren, lesen Sie die Anleitung zur Dataflow-Wortzählung der Google Cloud Console.
Zur Dataflow-AnleitungHinweis
- Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
-
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Datastore, und Cloud Resource Manager APIs aktivieren.
-
Erstellen Sie ein Dienstkonto:
-
Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zur Seite „Dienstkonto erstellen“ - Wählen Sie Ihr Projekt aus.
-
Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel:
Service account for quickstart
. - Klicken Sie auf Erstellen und fortfahren.
-
Weisen Sie dem Dienstkonto die Rolle Project > Owner zu.
Wenn Sie die Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie Project > Owner aus.
- Klicken Sie auf Weiter.
-
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.
-
-
Erstellen Sie einen Dienstkontoschlüssel:
- Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
- Klicken Sie auf Schlüssel.
- Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
- Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
- Klicken Sie auf Schließen.
-
Legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen. -
Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.
-
Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.
-
Dataflow, Compute Engine, Cloud Logging, Cloud Storage, Google Cloud Storage JSON, BigQuery, Cloud Pub/Sub, Cloud Datastore, und Cloud Resource Manager APIs aktivieren.
-
Erstellen Sie ein Dienstkonto:
-
Wechseln Sie in der Google Cloud Console zur Seite Dienstkonto erstellen.
Zur Seite „Dienstkonto erstellen“ - Wählen Sie Ihr Projekt aus.
-
Geben Sie im Feld Dienstkontoname einen Namen ein. Die Google Cloud Console füllt das Feld Dienstkonto-ID anhand dieses Namens aus.
Geben Sie im Feld Dienstkontobeschreibung eine Beschreibung ein. Beispiel:
Service account for quickstart
. - Klicken Sie auf Erstellen und fortfahren.
-
Weisen Sie dem Dienstkonto die Rolle Project > Owner zu.
Wenn Sie die Rolle zuweisen möchten, suchen Sie die Liste Rolle auswählen und wählen Sie Project > Owner aus.
- Klicken Sie auf Weiter.
-
Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
Schließen Sie das Browserfenster nicht. Sie verwenden es in der nächsten Aufgabe.
-
-
Erstellen Sie einen Dienstkontoschlüssel:
- Klicken Sie in der Google Cloud Console auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
- Klicken Sie auf Schlüssel.
- Klicken Sie auf Schlüssel hinzufügen und dann auf Neuen Schlüssel erstellen.
- Klicken Sie auf Erstellen. Daraufhin wird eine JSON-Schlüsseldatei auf Ihren Computer heruntergeladen.
- Klicken Sie auf Schließen.
-
Legen Sie die Umgebungsvariable
GOOGLE_APPLICATION_CREDENTIALS
auf den Pfad der JSON-Datei fest, die Ihre Anmeldedaten enthält. Diese Variable gilt nur für Ihre aktuelle Shell-Sitzung. Wenn Sie eine neue Sitzung öffnen, müssen Sie die Variable neu festlegen. - Cloud Storage-Bucket erstellen:
- Wechseln Sie in der Google Cloud Console zur Cloud Storage-Seite Buckets.
- Klicken Sie auf Bucket erstellen.
- Geben Sie auf der Seite Bucket erstellen die Bucket-Informationen ein. Klicken Sie auf Weiter, um mit dem nächsten Schritt fortzufahren.
- Geben Sie unter Bucket benennen einen eindeutigen Bucket-Namen ein. Der Bucket-Name darf keine vertraulichen Informationen enthalten, da der Bucket-Namespace global und öffentlich sichtbar ist.
-
Gehen Sie unter Speicherort für Daten auswählen folgendermaßen vor:
- Wählen Sie eine Option für Standorttyp aus.
- Wählen Sie eine Standort-Option aus.
- Wählen Sie unter Standardspeicherklasse für Ihre Daten auswählen Folgendes aus: Standard.
- Wählen Sie unter Zugriffssteuerung für Objekte auswählen eine Option für die Zugriffssteuerung aus.
- Geben Sie für Erweiterte Einstellungen (optional) eine Verschlüsselungsmethode, eine Aufbewahrungsrichtlinie oder Bucket-Labels an.
- Klicken Sie auf Erstellen.
- Kopieren Sie Folgendes, was Sie in einem späteren Abschnitt benötigen:
- : Name Ihres Cloud Storage-Buckets
- Ihre Google Cloud-Projekt-ID. Diese ID finden Sie mithilfe Projekte identifizieren.
- Laden Sie das Java Development Kit (JDK) Version 11 herunter und installieren Sie es. (Dataflow unterstützt weiterhin Version 8.) Prüfen Sie, ob die Umgebungsvariable
JAVA_HOME
festgelegt ist und auf Ihre JDK-Installation verweist. - Laden Sie Apache Maven herunter und installieren Sie es entsprechend der Maven-Installationsanleitung für Ihr Betriebssystem.
Pipelinecode abrufen
Das Apache Beam SDK ist ein Open-Source-Programmiermodell für Datenverarbeitungspipelines. Sie definieren diese Pipelines mit einem Apache Beam-Programm und können einen Runner wie Dataflow zum Ausführen Ihrer Pipeline auswählen.
- Verwenden Sie in Ihrer Shell oder Ihrem Terminal das Maven Archetype-Plug-in um ein Maven-Projekt auf Ihrem Computer zu erstellen, das die
WordCount
-Beispiele des Apache Beam SDK enthält:mvn archetype:generate \ -DarchetypeGroupId=org.apache.beam \ -DarchetypeArtifactId=beam-sdks-java-maven-archetypes-examples \ -DarchetypeVersion=2.37.0 \ -DgroupId=org.example \ -DartifactId=word-count-beam \ -Dversion="0.1" \ -Dpackage=org.apache.beam.examples \ -DinteractiveMode=false
Der Befehl erstellt unter dem aktuellen Verzeichnis ein neues Verzeichnis mit dem Namen
word-count-beam
. Das Verzeichnisword-count-beam
enthält eine einfachepom.xml
-Datei und eine Reihe von Beispielpipelines, mit denen Wörter in Textdateien gezählt werden. - Prüfen Sie, ob das Verzeichnis
word-count-beam
die Dateipom.xml
enthält:Linux oder macOS
cd word-count-beam/ ls
Die Ausgabe sieht so aus:
pom.xml src
Windows
cd word-count-beam/ dir
Die Ausgabe sieht so aus:
pom.xml src
- Prüfen Sie, ob Ihr Maven-Projekt die Beispielpipelines enthält:
Linux oder macOS
ls src/main/java/org/apache/beam/examples/
Die Ausgabe sieht so aus:
DebuggingWordCount.java WindowedWordCount.java common MinimalWordCount.java WordCount.java
Windows
dir src/main/java/org/apache/beam/examples/
Die Ausgabe sieht so aus:
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 Apache Beam WordCount. In den nächsten Abschnitten wird WordCount.java
verwendet.
Pipeline lokal ausführen
- Führen Sie in der Shell oder dem Terminal die Pipeline
WordCount
lokal im Verzeichnisword-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 Verzeichnisword-count-beam
geschrieben. Sie enthalten eindeutige Wörter aus dem Eingabetext und die Häufigkeit, mit der jedes Wort vorkommt.
Pipeline im Dataflow-Dienst ausführen
- Erstellen und führen Sie aus in Ihrer Shell oder Ihrem Terminal die Pipeline
WordCount
im Dataflow-Dienst über Ihr Verzeichnisword-count-beam
:mvn -Pdataflow-runner compile exec:java \ -Dexec.mainClass=org.apache.beam.examples.WordCount \ -Dexec.args="--project=PROJECT_ID \ --gcpTempLocation=gs://BUCKET_NAME/temp/ \ --output=gs://BUCKET_NAME/output \ --runner=DataflowRunner \ --region=REGION"
Dabei gilt:
PROJECT_ID
: Ihre Cloud-Projekt-IDBUCKET_NAME
: der Name Ihres Cloud Storage-BucketsREGION
: ein regionaler Dataflow-Endpunkt, z. B.us-central1
Ergebnisse ansehen
- Rufen Sie in der Cloud Console die Seite Jobs von Dataflow auf.
ZU JOBSAuf der Seite Jobs sind die Details aller verfügbaren Jobs einschließlich des Status aufgeführt. Der Status des Jobs wordcount lautet zuerst Wird ausgeführt… und wird dann auf Erfolgreich aktualisiert.
-
Wechseln Sie in der Cloud Console zum Cloud Storage-Browser.
Browser aufrufenAuf der Seite Browser wird eine Liste aller Storage-Buckets in Ihrem Projekt angezeigt.
- Klicken Sie auf den Storage-Bucket, den Sie erstellt haben.
Auf der Seite Bucket-Details werden die vom Dataflow-Job erstellten Ausgabedateien und Staging-Dateien angezeigt.
Bereinigen
Mit den folgenden Schritten vermeiden Sie, dass Ihrem Google Cloud-Konto die in dieser Anleitung verwendeten Ressourcen in Rechnung gestellt werden:
Projekt löschen
Am einfachsten können Sie weitere Kosten vermeiden, wenn Sie das Google Cloud-Projekt löschen, das Sie für den Schnellstart erstellt haben.
- Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.
- Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
- Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.
Einzelne Ressourcen löschen
Wenn Sie das in dieser Kurzanleitung verwendete Google Cloud-Projekt beibehalten möchten, löschen Sie die einzelnen Ressourcen:
- Wechseln Sie in der Cloud Console zur Seite Cloud Storage-Buckets.
- Klicken Sie auf das Kästchen neben dem Bucket, der gelöscht werden soll.
- Klicken Sie zum Löschen des Buckets auf Löschen und folgen Sie der Anleitung.