Sie können zusätzliche Komponenten wie Hudi installieren, wenn Sie einen Dataproc-Cluster mit der Funktion Optionale Komponenten erstellen. Auf dieser Seite wird beschrieben, wie Sie optional die Hudi-Komponente in einem Dataproc-Cluster installieren können.
Bei Installation in einem Dataproc-Cluster installiert die Apache Hudi-Komponente Hudi-Bibliotheken und konfiguriert Spark und Hive im Cluster für Hudi.
Kompatible Dataproc-Image-Versionen
Sie können die Hudi-Komponente auf Dataproc-Clustern installieren, die mit den folgenden Dataproc-Image-Versionen erstellt wurden:
Hudi-Eigenschaften
Wenn Sie einen Dataproc mit Hudi-Cluster erstellen, werden die folgenden Spark- und Hive-Attribute für die Zusammenarbeit mit Hudi konfiguriert.
Konfigurationsdatei | Attribut | Standardwert |
---|---|---|
/etc/spark/conf/spark-defaults.conf |
spark.serializer |
org.apache.spark.serializer.KryoSerializer |
spark.sql.catalog.spark_catalog |
org.apache.spark.sql.hudi.catalog.HoodieCatalog |
|
spark.sql.extensions |
org.apache.spark.sql.hudi.HoodieSparkSessionExtension |
|
spark.driver.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
spark.executor.extraClassPath |
/usr/lib/hudi/lib/hudi-sparkspark-version-bundle_scala-version-hudi-version.jar |
|
/etc/hive/conf/hive-site.xml |
hive.aux.jars.path |
file:///usr/lib/hudi/lib/hudi-hadoop-mr-bundle-version.jar |
Komponente installieren
Hudi-Komponente installieren, wenn Sie einen Dataproc-Cluster erstellen
Auf den Seiten der Dataproc-Image-Versionen wird die in jedem Dataproc-Image-Release enthaltene Hudi-Komponentenversion aufgeführt.
Console
- Aktivieren Sie die Komponente.
- Rufen Sie in der Google Cloud Console die Dataproc-Seite Cluster erstellen auf. Der Bereich Cluster einrichten ist ausgewählt.
- Im Bereich Komponenten:
- Wählen Sie unter Optionale Komponenten die Komponente Hudi aus.
gcloud-Befehl
Verwenden Sie den Befehl mit dem Flag --optional-components
, um einen Dataproc-Cluster zu erstellen, der die Hudi-Komponente enthält.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
Ersetzen Sie Folgendes:
- CLUSTER_NAME: erforderlich. Der Name des neuen Clusters.
- REGION: erforderlich. Die Clusterregion.
- DATAPROC_IMAGE: Optional. Sie können dieses optionale Flag verwenden, um eine nicht standardmäßige Dataproc-Image-Version anzugeben (siehe Dataproc-Standard-Image-Version).
- PROPERTIES: Optional. Mit diesem optionalen Flag können Sie die Eigenschaften der Hudi-Komponente festlegen, die mit dem Dateipräfix
hudi:
angegeben werden. Beispiel:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE
.- Eigenschaft der Hudi-Komponentenversion: Optional kannst du die Eigenschaft
dataproc:hudi.version
angeben. Hinweis:Die Version der Hudi-Komponente wird von Dataproc so festgelegt, dass sie mit der Image-Version des Dataproc-Clusters kompatibel ist. Wenn Sie dieses Attribut festlegen, kann die Clustererstellung fehlschlagen, wenn die angegebene Version nicht mit dem Cluster-Image kompatibel ist. - Spark- und Hive-Attribute: Dataproc legt beim Erstellen des Clusters Hudi-bezogene Spark- und Hive-Attribute fest. Sie müssen sie beim Erstellen des Clusters oder Senden von Jobs nicht festlegen.
- Eigenschaft der Hudi-Komponentenversion: Optional kannst du die Eigenschaft
REST API
Die Hudi-Komponente kann über die Dataproc API mit SoftwareConfig.Component
im Rahmen einer clusters.create
-Anfrage installiert werden.
Job zum Lesen und Schreiben von Hudi-Tabellen senden
Nach dem Erstellen eines Clusters mit der Hudi-Komponente können Sie Spark- und Hive-Jobs senden, die Hudi-Tabellen lesen und schreiben.
gcloud CLI
-Beispiel:
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ --region=region \ --job-file=JOB_FILE \ -- JOB_ARGS
PySpark-Beispieljob
Die folgende PySpark-Datei erstellt, liest und schreibt eine Hudi-Tabelle.
Mit dem folgenden gcloud CLI-Befehl wird die PySpark-Beispieldatei an Dataproc gesendet.
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
Hudi CLI verwenden
Die Hudi-Befehlszeile befindet sich unter /usr/lib/hudi/cli/hudi-cli.sh
auf dem Masterknoten des Dataproc-Clusters. Sie können die Hudi CLI verwenden, um Hudi-Tabellenschemas, Commits und Statistiken anzusehen und Verwaltungsvorgänge wie geplante Verdichtungen manuell auszuführen (siehe hudi-cli).
So starten Sie die Hudi CLI und stellen eine Verbindung zu einem Hudi-Tisch her:
- Stellen Sie eine SSH-Verbindung zum Master-Knoten her.
- Führen Sie
/usr/lib/hudi/cli/hudi-cli.sh
aus. Die Eingabeaufforderung ändert sich inhudi->
. - Führen Sie
connect --path gs://my-bucket/my-hudi-table
aus. - Führen Sie Befehle aus, z. B.
desc
zum Beschreiben des Tabellenschemas odercommits show
zum Anzeigen des Commit-Verlaufs. - Führen Sie
exit
aus, um die Befehlszeilensitzung zu beenden.