Le composant Apache Hudi vous permet d'exécuter Hudi sur Managed Service pour Apache Spark. Lorsque vous installez le composant lors de la création du cluster à l'aide de la fonctionnalité Composants facultatifs, il déploie les bibliothèques Hudi et configure Spark et Hive dans le cluster pour qu'ils fonctionnent avec Hudi.
Versions d'image Managed Service pour Apache Spark compatibles
Vous pouvez installer le composant Hudi sur les clusters Managed Service pour Apache Spark créés avec les versions d'image Managed Service pour Apache Spark suivantes :
Propriétés liées à Hudi
Lorsque vous créez un cluster Managed Service pour Apache Spark avec Hudi, les propriétés Spark et Hive suivantes sont configurées pour fonctionner avec Hudi.
| Fichier de configuration | Propriété | Valeur par défaut |
|---|---|---|
/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 |
Installer le composant
Installez le composant Hudi lorsque vous créez un cluster Managed Service pour Apache Spark.
Les pages des versions d'image de Managed Service pour Apache Spark listent la version du composant Hudi incluse dans chaque version d'image de Managed Service pour Apache Spark.
ConsoleGoogle Cloud
- Dans la console Google Cloud , ouvrez la page Créer un cluster.
- Cliquez sur Configuration supplémentaire pour développer cette section.
- Modifiez les composants facultatifs.
- Dans le panneau qui s'ouvre, cochez la case Hudi.
- Cliquez sur Enregistrer.
gcloud CLI
Pour créer un cluster Managed Service pour Apache Spark incluant le composant Hudi, utilisez la commande avec l'option --optional-components.
gcloud dataproc clusters create CLUSTER_NAME \ --region=REGION \ --optional-components=HUDI \ --image-version=DATAPROC_VERSION \ --properties=PROPERTIES
Remplacez les éléments suivants :
- CLUSTER_NAME : valeur obligatoire. Nouveau nom du cluster.
- REGION : valeur obligatoire. La région du cluster.
- DATAPROC_IMAGE : facultatif. Vous pouvez utiliser cette option facultative pour spécifier une version d'image Managed Service pour Apache Spark autre que celle par défaut (consultez Version d'image Managed Service pour Apache Spark par défaut).
- PROPERTIES : facultatif. Vous pouvez utiliser cette option facultative pour définir les propriétés du composant Hudi, qui sont spécifiées avec le préfixe de fichier
hudi:(exemple :properties=hudi:hoodie.datasource.write.table.type=COPY_ON_WRITE).- Propriété de version du composant Hudi : vous pouvez éventuellement spécifier la propriété
dataproc:hudi.version. Remarque : La version du composant Hudi est définie par Managed Service pour Apache Spark pour être compatible avec la version de l'image du cluster Managed Service pour Apache Spark. Si vous définissez cette propriété, la création du cluster peut échouer si la version spécifiée n'est pas compatible avec l'image du cluster. - Propriétés Spark et Hive : Managed Service pour Apache Spark définit les propriétés Spark et Hive liées à Hudi lors de la création du cluster. Vous n'avez pas besoin de les définir lors de la création du cluster ou de l'envoi de jobs.
- Propriété de version du composant Hudi : vous pouvez éventuellement spécifier la propriété
API REST
Le composant Hudi peut être installé via l'API Dataproc à l'aide de SoftwareConfig.Component dans le cadre d'une requête clusters.create.
Envoyer un job pour lire et écrire des tables Hudi
Après avoir créé un cluster avec le composant Hudi, vous pouvez envoyer des jobs Spark et Hive qui lisent et écrivent des tables Hudi.
Exemple de gcloud CLI :
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ --region=region \ JOB_FILE \ -- JOB_ARGS
Exemple de job PySpark
Le fichier PySpark suivant crée, lit et écrit une table Hudi.
La commande gcloud CLI suivante envoie l'exemple de fichier PySpark à Managed Service pour Apache Spark.
gcloud dataproc jobs submit pyspark \ --cluster=CLUSTER_NAME \ gs://BUCKET_NAME/pyspark_hudi_example.py \ -- TABLE_NAME gs://BUCKET_NAME/TABLE_NAME
Utiliser la CLI Hudi
La CLI Hudi se trouve à l'emplacement /usr/lib/hudi/cli/hudi-cli.sh sur le maître de cluster Managed Service pour Apache Spark. Vous pouvez utiliser la CLI Hudi pour afficher les schémas, les commits et les statistiques des tables Hudi, et pour effectuer manuellement des opérations d'administration, telles que la planification des compactions (voir Utiliser hudi-cli).
Pour démarrer la CLI Hudi et vous connecter à une table Hudi :
- Connectez-vous en SSH au nœud maître.
- Exécutez
/usr/lib/hudi/cli/hudi-cli.sh. L'invite de commande devienthudi->. - Exécutez
connect --path gs://my-bucket/my-hudi-table. - Exécutez des commandes, telles que
desc, qui décrit le schéma de la table, oucommits show, qui affiche l'historique des commits. - Pour arrêter la session de la CLI, exécutez
exit.
Étapes suivantes
- Consultez le guide de démarrage rapide de Hudi.