Feedback geben
Apache Spark mit HBase in Dataproc verwenden
bookmark_border bookmark
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Eingestellt: Ab der Dataproc-Version 2.1 können Sie die optionale HBase-Komponente nicht mehr verwenden.
Dataproc Version 1.5 und Dataproc Version 2.0 bieten eine Betaversion von HBase ohne Support. Aufgrund der Sitzungsspezifität von Dataproc-Clustern wird die Verwendung von HBase jedoch nicht empfohlen.
Lernziele
In dieser Anleitung wird Folgendes erläutert:
Dataproc-Cluster erstellen und Apache HBase und Apache ZooKeeper darauf installieren
HBase-Tabelle mit der HBase-Shell erstellen, die auf dem Masterknoten des Dataproc-Clusters ausgeführt wird
Über Cloud Shell einen Java- oder PySpark-Spark-Job an den Dataproc-Dienst senden, der Daten in die HBase-Tabelle schreibt und dann daraus liest
Kosten
In diesem Dokument verwenden Sie die folgenden kostenpflichtigen Komponenten von Google Cloud:
Mit dem Preisrechner können Sie eine Kostenschätzung für Ihre voraussichtliche Nutzung vornehmen.
Neuen Google Cloud-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.
Hinweis
Erstellen Sie ein Google Cloud Platform-Projekt, falls dies noch nicht geschehen ist.
Sign in to your Google Cloud account. If you're new to
Google Cloud,
create an account to evaluate how our products perform in
real-world scenarios. New customers also get $300 in free credits to
run, test, and deploy workloads.
In the Google Cloud console, on the project selector page,
select or create a Google Cloud project.
Note : If you don't plan to keep the
resources that you create in this procedure, create a project instead of
selecting an existing project. After you finish these steps, you can
delete the project, removing all resources associated with the project.
Go to project selector
Make sure that billing is enabled for your Google Cloud project .
Enable the Dataproc and Compute Engine APIs.
Enable the APIs
Dataproc-Cluster erstellen
Führen Sie in einem Cloud Shell -Sitzungsterminal den folgenden Befehl aus, um:
HBase - und ZooKeeper -Komponenten installieren
Drei Worker-Knoten bereitstellen (für die Ausführung des Codes in dieser Anleitung werden drei bis fünf Worker empfohlen)
Component Gateway aktivieren
Image-Version 2.0 verwenden
Verwenden Sie das Flag --properties
, um die HBase-Konfiguration und die HBase-Bibliothek den Spark-Treiber- und Executor-Classpaths hinzuzufügen.
gcloud dataproc clusters create cluster-name \
--region=region \
--optional-components=HBASE,ZOOKEEPER \
--num-workers=3 \
--enable-component-gateway \
--image-version=2.0 \
--properties='spark:spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark:spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
Installation des Connectors prüfen
Stellen Sie über die Google Cloud Console oder ein Terminal in einer Cloud Shell-Sitzung eine SSH-Verbindung zum Masterknoten des Dataproc-Clusters her .
Prüfen Sie die Installation des Apache HBase Spark-Connectors auf dem Masterknoten:
ls -l /usr/lib/spark/jars | grep hbase-spark
Beispielausgabe:
-rw-r--r-- 1 root root size date time hbase-spark-connector.version .jar
Lassen Sie das Terminal der SSH-Sitzung geöffnet, um:
HBase-Tabelle erstellen
(Java-Nutzer): Befehle auf dem Masterknoten des Clusters ausführen , um die Versionen der im Cluster installierten Komponenten zu ermitteln
Scannen Sie Ihre HBase-Tabelle , nachdem Sie den Code ausgeführt haben.
HBase-Tabelle erstellen
Führen Sie die in diesem Abschnitt aufgeführten Befehle im Terminal der SSH-Sitzung des Masterknotens aus, die Sie im vorherigen Schritt geöffnet haben.
Öffnen Sie die HBase-Shell:
hbase shell
Erstellen Sie eine HBase-Tabelle „my-table“ mit der Spaltenfamilie „cf“:
create 'my_table','cf'
Bestätigen Sie die Tabellenerstellung, indem Sie in der Google Cloud Console unter Google Cloud Console-Links zum Komponenten-Gateway auf HBase klicken, um die Apache HBase-Benutzeroberfläche zu öffnen. my-table
wird auf der Seite Startseite im Bereich Tabellen aufgeführt.
Spark-Code ansehen
Code ausführen
Öffnen Sie ein Cloud Shell-Terminal .
Hinweis : Führen Sie die in diesem Abschnitt aufgeführten Befehle in einem Cloud Shell-Terminal aus. In Cloud Shell sind die für diese Anleitung erforderlichen Tools vorinstalliert, darunter gcloud CLI , git , Apache Maven , Java , Python und andere Tools .
Klonen Sie das GitHub-Repository GoogleCloudDataproc/cloud-dataproc in das Terminal Ihrer Cloud Shell-Sitzung:
git clone https://github.com/GoogleCloudDataproc/cloud-dataproc.git
Wechseln Sie in das Verzeichnis cloud-dataproc/spark-hbase
:
cd cloud-dataproc/spark-hbase
Beispielausgabe:
user-name @cloudshell:~/cloud-dataproc/spark-hbase (project-id )$
Senden Sie den Dataproc-Job.
Komponentenversionen in der pom.xml
-Datei festlegen
Auf der Seite Dataproc-Releaseversionen 2.0.x sind die Versionen der Scala-, Spark- und HBase-Komponenten aufgeführt, die mit der neuesten und den letzten vier untergeordneten Minor-Versionen von Image 2.0 installiert wurden.
Wenn Sie die Subminor-Version Ihres Clusters mit der Image-Version 2.0 ermitteln möchten, klicken Sie in der Google Cloud Console auf der Seite Cluster auf den Clusternamen, um die Seite Clusterdetails zu öffnen. Dort wird die Image-Version des Clusters aufgeführt.
Alternativ können Sie die folgenden Befehle in einem SSH-Sitzungsterminal vom Masterknoten Ihres Clusters ausführen, um die Komponentenversionen zu ermitteln:
Scala-Version prüfen:
scala -version
Spark-Version prüfen (zum Beenden Strg-D drücken):
spark-shell
HBase-Version prüfen:
hbase version
Ermitteln Sie die Spark-, Scala- und HBase-Versionsabhängigkeiten in der Maven-pom.xml
:
<properties>
<scala.version>scala full version (for example, 2.12.14) </scala.version>
<scala.main.version>scala main version (for example, 2.12) </scala.main.version>
<spark.version>spark version (for example, 3.1.2) </spark.version>
<hbase.client.version>hbase version (for example, 2.2.7) </hbase.client.version>
<hbase-spark.version>1.0.0 (the current Apache HBase Spark Connector version)>
</properties>
Hinweis: hbase-spark.version
ist die aktuelle Version des Spark HBase-Connectors. Lassen Sie diese Versionsnummer unverändert.
Bearbeiten Sie die Datei pom.xml
im Cloud Shell-Editor, um die richtigen Versionsnummern für Scala, Spark und HBase einzufügen.
Klicken Sie auf Terminal öffnen , um nach Abschluss der Bearbeitung zur Befehlszeile des Cloud Shell-Terminals zurückzukehren.
cloudshell edit .
Wechseln Sie in Cloud Shell zu Java 8. Diese JDK-Version ist zum Erstellen des Codes erforderlich. Sie können alle Plug-in-Warnungen ignorieren:
sudo update-java-alternatives -s java-1.8.0-openjdk-amd64 && export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
Prüfen Sie die Installation von Java 8:
java -version
Beispielausgabe:
openjdk version "1.8..."
Erstellen Sie die Datei jar
:
mvn clean package
Die Datei .jar
wird im Unterverzeichnis /target
abgelegt, z. B. target/spark-hbase-1.0-SNAPSHOT.jar
.
Senden Sie den Job.
gcloud dataproc jobs submit spark \
--class=hbase.SparkHBaseMain \
--jars=target/filename .jar \
--region=cluster-region \
--cluster=cluster-name
--jars
: Fügen Sie den Namen Ihrer .jar
-Datei nach „target/“ und vor „.jar“ ein.
Wenn Sie die HBase-Classpfade für den Spark-Treiber und ‑Ausführer beim Erstellen des Clusters nicht festgelegt haben, müssen Sie sie bei jeder Jobeinreichung festlegen. Fügen Sie dazu das folgende ‑‑properties
-Flag in den Befehl zum Einreichen des Jobs ein:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
HBase-Tabellenausgabe in der Terminalausgabe der Cloud Shell-Sitzung ansehen:
Waiting for job output...
...
+----+----+
| key|name|
+----+----+
|key1| foo|
|key2| bar|
+----+----+
Senden Sie den Job.
gcloud dataproc jobs submit pyspark scripts/pyspark-hbase.py \
--region=cluster-region \
--cluster=cluster-name
Wenn Sie die HBase-Classpfade für den Spark-Treiber und ‑Ausführer beim Erstellen des Clusters nicht festgelegt haben, müssen Sie sie bei jeder Jobeinreichung festlegen. Fügen Sie dazu das folgende ‑‑properties
-Flag in den Befehl zum Einreichen des Jobs ein:
--properties='spark.driver.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*,spark.executor.extraClassPath=/etc/hbase/conf:/usr/lib/hbase/*'
HBase-Tabellenausgabe in der Terminalausgabe der Cloud Shell-Sitzung ansehen:
Waiting for job output...
...
+----+----+
| key|name|
+----+----+
|key1| foo|
|key2| bar|
+----+----+
HBase-Tabelle scannen
Sie können den Inhalt Ihrer HBase-Tabelle scannen, indem Sie die folgenden Befehle im Terminal der SSH-Sitzung des Masterknotens ausführen, die Sie unter Verbindungsinstallation prüfen geöffnet haben:
Öffnen Sie die HBase-Shell:
hbase shell
Tabelle „my-table“ scannen:
scan 'my_table'
Beispielausgabe:
ROW COLUMN+CELL
key1 column=cf:name, timestamp=1647364013561, value=foo
key2 column=cf:name, timestamp=1647364012817, value=bar
2 row(s)
Took 0.5009 seconds
Bereinigen
Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.
Projekt löschen
Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.
So löschen Sie das Projekt:
Achtung: Das Löschen von Projekten hat folgende Auswirkungen:
Alle Inhalte des Projekts werden gelöscht. Wenn Sie für die Aufgaben in diesem Dokument ein bereits bestehendes Projekt verwendet haben und dieses löschen, werden auch alle anderen im Rahmen des Projekts erstellten Daten gelöscht.
Benutzerdefinierte Projekt-IDs gehen verloren.
Beim Erstellen dieses Projekts haben Sie möglicherweise eine benutzerdefinierte Projekt-ID erstellt, die Sie weiterhin verwenden möchten. Damit die URLs, die die Projekt-ID nutzen, z. B. eine appspot.com
-URL, erhalten bleiben, sollten Sie ausgewählte Ressourcen innerhalb des Projekts löschen, statt das gesamte Projekt.
Wenn Sie mehrere Architekturen, Anleitungen und Kurzanleitungen durcharbeiten möchten, können Sie die Überschreitung von Projektkontingenten verhindern, indem Sie Projekte wiederverwenden.
In the Google Cloud console, go to the Manage resources page.
Go to Manage resources
In the project list, select the project that you
want to delete, and then click Delete .
In the dialog, type the project ID, and then click
Shut down to delete the project.
Cluster löschen
So löschen Sie den Cluster:
gcloud dataproc clusters delete cluster-name \
--region=${REGION}
Feedback geben
Sofern nicht anders angegeben, sind die Inhalte dieser Seite unter der Creative Commons Attribution 4.0 License und Codebeispiele unter der Apache 2.0 License lizenziert. Weitere Informationen finden Sie in den Websiterichtlinien von Google Developers . Java ist eine eingetragene Marke von Oracle und/oder seinen Partnern.
Zuletzt aktualisiert: 2025-02-06 (UTC).
Haben Sie Feedback für uns?
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Schwer verständlich","hardToUnderstand","thumb-down"],["Informationen oder Beispielcode falsch","incorrectInformationOrSampleCode","thumb-down"],["Benötigte Informationen/Beispiele nicht gefunden","missingTheInformationSamplesINeed","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-02-06 (UTC)."],[],[]]