Sie können zusätzliche Komponenten wie Hudi installieren, wenn Sie einen Managed Service for Apache Spark Cluster mit dem Feature Optionale Komponenten erstellen. Auf dieser Seite wird beschrieben, wie Sie die Hudi-Komponente optional in einem Managed Service for Apache Spark-Cluster installieren können.
Wenn die Apache Hudi Komponente in einem Managed Service for Apache Spark-Cluster installiert ist, werden Hudi-Bibliotheken installiert und Spark und Hive im Cluster so konfiguriert, dass sie mit Hudi funktionieren.
Kompatible Managed Service for Apache Spark-Imageversionen
Sie können die Hudi-Komponente in Managed Service for Apache Spark-Clustern installieren, die mit den folgenden Managed Service for Apache Spark-Imageversionen 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 Managed Service for Apache Spark-Image-Releaseversionen ist die Hudi-Komponentenversion aufgeführt, die in jedem Managed Service for Apache Spark-Image-Release enthalten ist.
Console
- Aktivieren Sie die Komponente.
- Öffnen Sie in der Google Cloud console die Seite „Managed Service for Apache Spark Cluster erstellen “. 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 Managed Service for Apache Spark-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. Mit diesem optionalen Flag können Sie eine andere als die Standard-Imageversion von Managed Service for Apache Spark angeben (siehe Standard-Imageversion von Managed Service for Apache Spark).
- PROPERTIES: optional. Mit diesem optionalen Flag können Sie
Eigenschaften der Hudi-Komponente festlegen,
die mit dem
hudi:Dateipräfix angegeben werden. Beispiel:properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE).- Eigenschaft der Hudi-Komponentenversion: Sie können optional die
dataproc:hudi.versionEigenschaft angeben. Hinweis: Die Hudi-Komponentenversion wird von Managed Service for Apache Spark so festgelegt, dass sie mit der Imageversion des Managed Service for Apache Spark-Clusters kompatibel ist. Wenn Sie diese Eigenschaft festlegen, kann die Clustererstellung fehlschlagen, wenn die angegebene Version nicht mit dem Clusterimage kompatibel ist. - Spark- und Hive-Attribute: Managed Service for Apache Spark legt Hudi-bezogene Spark- und Hive Attribute fest, wenn der Cluster erstellt wird. Sie müssen sie nicht festlegen, wenn Sie den Cluster erstellen oder Jobs senden.
- Eigenschaft der Hudi-Komponentenversion: Sie können optional die
REST API
Die Hudi-Komponente
kann über die Managed Service for Apache Spark API mit
SoftwareConfig.Component
als Teil einer
clusters.create
Anfrage installiert werden.
Job senden, um Hudi-Tabellen zu lesen und zu schreiben
Nachdem Sie einen Cluster mit der Hudi-Komponente erstellt haben, können Sie Spark- und Hive-Jobs senden, die Hudi-Tabellen lesen und schreiben.
Beispiel für die gcloud CLI:
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ --region=region \ JOB_FILE \ -- JOB_ARGS
Beispiel für einen PySpark-Job
Die folgende PySpark-Datei erstellt, liest und schreibt eine Hudi-Tabelle.
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 CLI verwenden
Die Hudi CLI befindet sich auf dem Masterknoten des Managed Service for Apache Spark-Clusters unter /usr/lib/hudi/cli/hudi-cli.sh. Mit der Hudi CLI
können Sie Hudi-Tabellenschemas, Commits und Statistiken ansehen und administrative Vorgänge manuell ausführen,
z. B. Komprimierungen planen (siehe
Hudi CLI verwenden).
So starten Sie die Hudi CLI 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, der das Tabellenschema beschreibt, odercommits show, der den Commitverlauf anzeigt. - Führen Sie
exitaus, um die CLI-Sitzung zu beenden.
Nächste Schritte
- Kurzanleitung zu Hudi ansehen.