1. Übersicht
Cloud Dataproc ist ein verwalteter Spark- und Hadoop-Dienst, mit dem Sie Open-Source-Datentools für Batchverarbeitungen, Abfragen, Streaming und maschinelles Lernen verwenden können. Mithilfe der Cloud Dataproc-Automatisierung lassen sich Cluster schnell erstellen, einfach verwalten und Kosten senken, weil Sie nicht mehr benötigte Cluster deaktivieren können. Außerdem haben Sie so die Möglichkeit sich stärker auf Jobs und Daten zu konzentrieren.
Diese Anleitung basiert auf https://cloud.google.com/dataproc/overview.
Lerninhalte
- Verwalteten Cloud Dataproc-Cluster (bei dem Apache Spark vorinstalliert ist) erstellen
- Spark-Job senden
- Größe eines Clusters anpassen
- So stellen Sie eine SSH-Verbindung zum Masterknoten eines Dataproc-Clusters her
- Cluster, Jobs und Firewallregeln mit gcloud untersuchen
- Cluster herunterfahren
Voraussetzungen
Wie möchten Sie diese Anleitung nutzen?
<ph type="x-smartling-placeholder">Wie würden Sie Ihre Erfahrungen im Umgang mit Google Cloud Platform-Diensten bewerten?
<ph type="x-smartling-placeholder">2. Einrichtung und Anforderungen
Umgebung für das selbstbestimmte Lernen einrichten
- Melden Sie sich in der Cloud Console an und erstellen Sie ein neues Projekt oder verwenden Sie ein vorhandenes Projekt. Wenn Sie noch kein Gmail- oder G Suite-Konto haben, müssen Sie ein Konto erstellen.
Notieren Sie sich die Projekt-ID, also den projektübergreifend nur einmal vorkommenden Namen eines Google Cloud-Projekts. Der oben angegebene Name ist bereits vergeben und kann leider nicht mehr verwendet werden. Sie wird in diesem Codelab später als PROJECT_ID
bezeichnet.
- Als Nächstes müssen Sie in der Cloud Console die Abrechnung aktivieren, um Google Cloud-Ressourcen nutzen zu können.
Dieses Codelab sollte möglichst wenig kosten. Folgen Sie der Anleitung im Abschnitt „Bereinigen“, . Hier erfahren Sie, wie Sie Ressourcen herunterfahren, damit Ihnen über dieses Tutorial hinaus keine Kosten entstehen. Neue Google Cloud-Nutzer können an einem kostenlosen Testzeitraum mit 300$Guthaben teilnehmen.
3. Cloud Dataproc API und Google Compute Engine API aktivieren
Klicken Sie auf das Menüsymbol oben links auf dem Bildschirm.
Wählen Sie im Drop-down-Menü den API-Manager aus.
Klicken Sie auf APIs und Dienste aktivieren.
Suchen Sie nach „Compute Engine“. in das Suchfeld ein. Klicken Sie auf „Google Compute Engine API“. in der angezeigten Ergebnisliste.
Klicken Sie auf der Seite "Google Compute Engine" auf Aktivieren.
Wenn die Funktion aktiviert ist, klicke auf den Pfeil nach links, um zurückzugehen.
Suchen Sie jetzt nach „Google Cloud Dataproc API“. aktivieren und aktivieren.
4. Cloud Shell starten
Diese Debian-basierte virtuelle Maschine verfügt über alle erforderlichen Entwicklungstools. Es bietet ein Basisverzeichnis mit 5 GB nichtflüchtigem Speicher und wird in Google Cloud ausgeführt. Dadurch werden die Netzwerkleistung und die Authentifizierung erheblich verbessert. Für dieses Codelab benötigen Sie also nur einen Browser – ja, er funktioniert auf Chromebooks.
- Klicken Sie einfach auf Cloud Shell aktivieren , um Cloud Shell über die Cloud Console zu aktivieren. Die Bereitstellung und Verbindung mit der Umgebung dauert einen Moment.
Sobald Sie mit Cloud Shell verbunden sind, sollten Sie sehen, dass Sie bereits authentifiziert sind und dass das Projekt bereits auf Ihre PROJECT_ID
eingestellt ist.
gcloud auth list
Befehlsausgabe
Credentialed accounts: - <myaccount>@<mydomain>.com (active)
gcloud config list project
Befehlsausgabe
[core] project = <PROJECT_ID>
Sollte das Projekt aus irgendeinem Grund nicht eingerichtet sein, geben Sie einfach den folgenden Befehl ein:
gcloud config set project <PROJECT_ID>
Du suchst dein Gerät (PROJECT_ID
)? Sehen Sie nach, welche ID Sie bei den Einrichtungsschritten verwendet haben, oder rufen Sie sie im Dashboard der Cloud Console auf:
Cloud Shell legt außerdem standardmäßig einige Umgebungsvariablen fest, die bei der Ausführung zukünftiger Befehle nützlich sein können.
echo $GOOGLE_CLOUD_PROJECT
Befehlsausgabe
<PROJECT_ID>
- Legen Sie schließlich die Standardzone und die Projektkonfiguration fest.
gcloud config set compute/zone us-central1-f
Sie können verschiedene Zonen auswählen. Weitere Informationen finden Sie unter Regionen und Zonen.
5. Cloud Dataproc-Cluster erstellen
Nach dem Start von Cloud Shell können Sie über die Befehlszeile den gcloud-Befehl des Cloud SDK oder andere Tools aufrufen, die auf der VM-Instanz verfügbar sind.
Wählen Sie einen Clusternamen für dieses Lab aus:
$ CLUSTERNAME=${USER}-dplab
Erstellen Sie zuerst einen neuen Cluster:
$ gcloud dataproc clusters create ${CLUSTERNAME} \
--region=us-central1 \
--scopes=cloud-platform \
--tags codelab \
--zone=us-central1-c
Die Standardclustereinstellungen, die zwei Worker-Knoten enthalten, sollten für diese Anleitung ausreichen. Der obige Befehl enthält die Option --zone
zur Angabe der geografischen Zone, in der der Cluster erstellt wird, sowie die beiden erweiterten Optionen --scopes
und --tags
. Diese werden unten erläutert, wenn Sie die von ihnen aktivierten Funktionen verwenden. Informationen zur Verwendung von Befehlszeilen-Flags zum Anpassen von Clustereinstellungen finden Sie im Cloud SDK-Befehl gcloud dataproc clusters create
.
6. Spark-Job an den Cluster senden
Sie können einen Job über eine Cloud Dataproc API-jobs.submit
-Anfrage, mit dem gcloud
-Befehlszeilentool oder über die Google Cloud Platform Console senden. Sie können auch über SSH eine Verbindung zu einer Maschineninstanz in Ihrem Cluster herstellen und dann einen Job über die Instanz ausführen.
So senden Sie einen Job mit dem gcloud
-Tool über die Cloud Shell-Befehlszeile:
$ gcloud dataproc jobs submit spark --cluster ${CLUSTERNAME} \
--class org.apache.spark.examples.SparkPi \
--jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000
Während der Jobausführung wird die Ausgabe im Cloud Shell-Fenster angezeigt.
Unterbrechen Sie die Ausgabe, indem Sie Strg + C drücken. Dadurch wird der Befehl gcloud
beendet, der Job wird aber weiterhin im Dataproc-Cluster ausgeführt.
7. Jobs auflisten und Verbindung wiederherstellen
Auftragsliste drucken:
$ gcloud dataproc jobs list --cluster ${CLUSTERNAME}
Der zuletzt gesendete Job steht oben in der Liste. Kopieren Sie die Job-ID und fügen Sie sie anstelle von „jobId
“ ein in den Befehl unten ein. Der Befehl stellt eine neue Verbindung zum angegebenen Job her und zeigt die Ausgabe an:
$ gcloud dataproc jobs wait jobId
Wenn der Job abgeschlossen ist, enthält die Ausgabe eine Annäherung des Pi-Werts.
8. Größe des Clusters anpassen
Wenn Sie größere Berechnungen ausführen möchten, können Sie Ihrem Cluster weitere Knoten hinzufügen, um ihn zu beschleunigen. Mit Dataproc können Sie Ihrem Cluster jederzeit Knoten hinzufügen oder Knoten aus Ihrem Cluster entfernen.
Prüfen Sie die Clusterkonfiguration:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
Vergrößern Sie den Cluster durch Hinzufügen einiger Knoten auf Abruf:
$ gcloud dataproc clusters update ${CLUSTERNAME} --num-secondary-workers=2
Sehen Sie sich den Cluster noch einmal an:
$ gcloud dataproc clusters describe ${CLUSTERNAME}
Neben dem workerConfig
aus der ursprünglichen Clusterbeschreibung gibt es jetzt auch eine secondaryWorkerConfig
, die zwei instanceNames
für die Worker auf Abruf enthält. In Dataproc wird als Clusterstatus „Bereit“ angezeigt, während die neuen Knoten gestartet werden.
Da Sie mit zwei Knoten begonnen haben und jetzt vier Knoten haben, sollten Ihre Spark-Jobs etwa doppelt so schnell ausgeführt werden.
9. SSH-Verbindung zum Cluster herstellen
Stellen Sie über SSH eine Verbindung zum Masterknoten her, dessen Instanzname immer dem Clusternamen mit angehängtem -m
entspricht:
$ gcloud compute ssh ${CLUSTERNAME}-m --zone=us-central1-c
Wenn Sie zum ersten Mal einen SSH-Befehl in Cloud Shell ausführen, werden dort SSH-Schlüssel für Ihr Konto generiert. Sie können eine Passphrase wählen oder vorerst eine leere Passphrase verwenden und diese später bei Bedarf mit ssh-keygen
ändern.
Prüfen Sie den Hostnamen auf der Instanz:
$ hostname
Da Sie beim Erstellen des Clusters --scopes=cloud-platform
angegeben haben, können Sie gcloud
-Befehle in Ihrem Cluster ausführen. Listen Sie die Cluster in Ihrem Projekt auf:
$ gcloud dataproc clusters list
Melden Sie sich anschließend von der SSH-Verbindung ab:
$ logout
10. Tags untersuchen
Beim Erstellen des Clusters haben Sie die Option --tags
hinzugefügt, um jedem Knoten im Cluster ein Tag hinzuzufügen. Mit Tags werden jedem Knoten Firewallregeln hinzugefügt. Sie haben in diesem Codelab keine passenden Firewallregeln erstellt, können aber die Tags auf einem Knoten und die Firewallregeln im Netzwerk prüfen.
Geben Sie die Beschreibung des Master-Knotens aus:
$ gcloud compute instances describe ${CLUSTERNAME}-m --zone us-central1-c
Suchen Sie nach tags:
am Ende der Ausgabe. Sie sehen, dass codelab
enthalten ist.
Drucken Sie die Firewallregeln aus:
$ gcloud compute firewall-rules list
Beachten Sie die Spalten SRC_TAGS
und TARGET_TAGS
. Durch Anhängen eines Tags an eine Firewallregel können Sie angeben, dass es auf allen Knoten mit diesem Tag verwendet werden soll.
11. Cluster herunterfahren
Sie können einen Cluster über die Cloud Dataproc API-Anfrage clusters.delete
, über die Befehlszeile mit der ausführbaren Datei gcloud dataproc clusters delete
oder über die Google Cloud Platform Console herunterfahren.
Fahren wir den Cluster jetzt über die Cloud Shell-Befehlszeile herunter:
$ gcloud dataproc clusters delete ${CLUSTERNAME} --region us-central1
12. Glückwunsch!
Sie haben gelernt, wie Sie einen Dataproc-Cluster erstellen, einen Spark-Job senden, die Größe eines Clusters anpassen, sich über SSH beim Masterknoten anmelden, mit gcloud Cluster, Jobs und Firewallregeln prüfen und den Cluster mit gcloud herunterfahren.
Weitere Informationen
- Dataproc-Dokumentation: https://cloud.google.com/dataproc/overview
- Codelab Erste Schritte mit Dataproc und der Console
Lizenz
Dieses Werk ist unter einer Creative Commons Attribution 3.0 Generic License und einer Apache 2.0-Lizenz lizenziert.