Mit der Apache Hudi-Komponente können Sie Hudi in Managed Service for Apache Spark ausführen. Wenn Sie die Komponente während der Clustererstellung mithilfe des Features Optionale Komponenten installieren, werden Hudi-Bibliotheken bereitgestellt und Spark und Hive im Cluster für die Verwendung mit Hudi konfiguriert.
Kompatible Image-Versionen von Managed Service for Apache Spark
Sie können die Hudi-Komponente auf Managed Service for Apache Spark-Clustern installieren, die mit den folgenden Managed Service for Apache Spark-Image-Versionen erstellt wurden:
Hudi-bezogene Attribute
Wenn Sie einen Managed Service for Apache Spark-Cluster mit Hudi erstellen, werden die folgenden Spark- und Hive-Attribute für die Verwendung 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
Installieren Sie die Hudi-Komponente, wenn Sie einen Managed Service for Apache Spark-Cluster erstellen.
Auf den Seiten zu den Image-Release-Versionen von Managed Service for Apache Spark sind die Hudi-Komponentenversionen aufgeführt, die in den einzelnen Image-Releases von Managed Service for Apache Spark enthalten sind.
Google Cloud Console
- Öffnen Sie in der Google Cloud Console die Seite Cluster erstellen.
- Klicken Sie auf Zusätzliche Konfiguration, um den Bereich zu maximieren.
- Bearbeiten Sie Optionale Komponenten.
- Klicken Sie im daraufhin geöffneten Bereich das Kästchen für Hudi an.
- Klicken Sie auf Speichern.
gcloud-CLI
Wenn Sie einen Managed Service for Apache Spark-Cluster mit der Hudi-Komponente erstellen möchten, verwenden Sie den Befehl mit dem Flag --optional-components.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
Ersetzen Sie Folgendes:
- CLUSTER_NAME: erforderlich. Der neue Clustername.
- REGION: erforderlich. Die Clusterregion.
- DATAPROC_IMAGE: Optional. Mit diesem optionalen Flag können Sie eine nicht standardmäßige Image-Version von Managed Service for Apache Spark angeben (siehe Standard-Image-Version von Managed Service for Apache Spark).
- PROPERTIES: Optional. Mit diesem optionalen Flag können Sie Hudi-Komponenteneigenschaften festlegen, die mit dem Dateipräfix
hudi:angegeben werden. Beispiel:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE).- Attribut für die Hudi-Komponentenversion: Sie können optional das Attribut
dataproc:hudi.versionangeben. Hinweis: Die Version der Hudi-Komponente wird von Managed Service for Apache Spark so festgelegt, dass sie mit der Image-Version des Managed Service for Apache Spark-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: Managed Service for Apache Spark legt beim Erstellen des Clusters Hudi-bezogene Spark- und Hive-Attribute fest. Sie müssen sie nicht beim Erstellen des Clusters oder beim Senden von Jobs festlegen.
- Attribut für die Hudi-Komponentenversion: Sie können optional das Attribut
REST API
Die Hudi-Komponente kann über die Dataproc API mit SoftwareConfig.Component als Teil einer clusters.create-Anfrage installiert werden.
Job zum Lesen und Schreiben von Hudi-Tabellen senden
Nachdem Sie einen Cluster mit der Hudi-Komponente erstellt haben, 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_ARGS
Beispiel für einen PySpark-Job
Mit der folgenden PySpark-Datei wird eine Hudi-Tabelle erstellt, gelesen und geschrieben.
Mit dem folgenden gcloud CLI-Befehl wird die PySpark-Beispieldatei an Managed Service for Apache Spark gesendet.
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
Hudi-Befehlszeile verwenden
Die Hudi-Befehlszeile befindet sich unter /usr/lib/hudi/cli/hudi-cli.sh auf dem Clustermaster des Managed Service for Apache Spark-Clusters. Mit der Hudi-Befehlszeile können Sie Hudi-Tabellenschemas, Commits und Statistiken aufrufen und administrative Vorgänge manuell ausführen, z. B. Komprimierungen planen (siehe hudi-cli verwenden).
So starten Sie die Hudi-Befehlszeile und stellen eine Verbindung zu einer Hudi-Tabelle her:
- Stellen Sie eine SSH-Verbindung zum Masterknoten her.
- Führen Sie
/usr/lib/hudi/cli/hudi-cli.shaus. Die Eingabeaufforderung ändert sich inhudi->. - Führen Sie
connect --path gs://my-bucket/my-hudi-tableaus. - Führen Sie Befehle wie
descaus, um das Tabellenschema zu beschreiben, odercommits show, um den Commit-Verlauf anzuzeigen. - Führen Sie
exitaus, um die CLI-Sitzung zu beenden.