Cette page explique comment utiliser la fonctionnalité de versions auxiliaires avec Dataproc Metastore.
Les versions auxiliaires vous permettent de connecter deux versions différentes d'un métastore Hive à un seul service Dataproc Metastore. Cette configuration vous permet de prendre en charge plusieurs moteurs de traitement des données qui doivent s'exécuter sur différentes versions de Hive Metastore.
Par exemple, à l'aide de versions auxiliaires, vous pouvez connecter plusieurs clusters Dataproc au même service Dataproc Metastore. Dans cette configuration, un cluster peut exécuter la version 2.0 de Dataproc, tandis que l'autre exécute la version 1.5 de Dataproc. Le cluster Dataproc 2.0 peut se connecter à un point de terminaison qui expose la version 3.1.2 de Hive, tandis que le cluster Dataproc 1.5 se connecte à un point de terminaison qui expose la version 2.3.6 de Hive.
Fonctionnement des versions auxiliaires
Lorsque vous activez les versions auxiliaires, Dataproc Metastore expose un point de terminaison distinct pour chaque version de métastore Hive. Toutefois, les deux points de terminaison continuent de partager la même base de données de métadonnées.
Cette fonctionnalité ne vous permet pas d'utiliser différents ensembles de métadonnées avec un seul service Dataproc Metastore. Il vous permet plutôt d'étendre et d'améliorer la compatibilité entre vos services.
Remarques
Général
Vous ne pouvez créer qu'une seule version auxiliaire pour chaque service Dataproc Metastore.
La version auxiliaire doit être configurée pour utiliser une version de metastore Hive antérieure à la version principale.
La version auxiliaire gère un fichier journal distinct de la version principale. Pour déboguer les problèmes liés au métastore Hive, vous pouvez utiliser Cloud Logging.
Compatibilité des caractéristiques
La version auxiliaire n'est pas compatible avec les fonctionnalités suivantes:
- Importez des métadonnées et exportez des métadonnées
Sauvegarder à partir d'un métastore, restaurer un métastore à partir d'une sauvegarde
Les fonctionnalités liées aux métadonnées (importation/exportation/sauvegarde/restauration) ne peuvent être utilisées qu'avec la version principale, car les métadonnées du backend sont partagées entre les deux versions.
Il est possible que certaines méthodes Hive ne soient pas compatibles entre la version auxiliaire et la version principale. Cette compatibilité dépend des versions de Hive que vous utilisez pour vos versions principales et auxiliaires, ainsi que des méthodes compatibles entre les versions de Hive.
La version auxiliaire n'est pas compatible avec toutes les fonctions d'une instance Dataproc Metastore principale. Par exemple, l'insertion d'enregistrements dans une table transactionnelle Hive n'est pas compatible avec un client Hive 2 qui interagit avec une version auxiliaire 2.3.6. Toutefois, cette opération est compatible avec un client Hive 3 qui interagit avec la version principale 3.1.2.
Si une fonctionnalité d'une version inférieure de Hive est obsolète dans une version supérieure de Hive, la version auxiliaire inférieure correspondante ne sera pas compatible avec la fonctionnalité obsolète. Par exemple, Hive 2 est compatible avec les index, mais une version auxiliaire exécutant Hive 2.3.6 n'est pas compatible avec l'index si la version principale exécute Hive 3.1.2.
La création de tables transactionnelles à l'aide de la version auxiliaire ou l'insertion de données dans des tables transactionnelles de la version auxiliaire sont empêchées.
Propriétés partagées entre les versions
Lorsque vous créez une version auxiliaire, certaines propriétés sont partagées et restent communes entre la version auxiliaire et la version principale. Les autres propriétés ne sont pas partagées et sont distinctes entre les deux versions.
Le tableau suivant présente ces différences.
Propriétés | Courant | Séparer |
---|---|---|
Point de terminaison | ✓ | |
Remplacements de configuration Hive* | ✓ | |
Configuration Kerberos | ✓ | |
Protocole de point de terminaison (Thrift/gRPC) | ✓ | |
Port de récupération | ✓ | |
Bucket Cloud Storage des artefacts | ✓ | |
Niveau | ✓ | |
Intervalle de maintenance | ✓ | |
Version disponible | ✓ | |
Configuration du chiffrement | ✓ | |
Type de base de données | ✓ | |
Boutons d'activation/de désactivation de la synchronisation Data Catalog | ✓ | |
Métrique "Nombre de requêtes" | ✓ | |
Configurations réseau | ✓ |
* Les forçages de configuration Hive restent distincts entre la version auxiliaire et la version principale. Toutefois, la version auxiliaire fait référence à une liste fusionnée des forçages (principal+auxiliaire). Dans ce cas, la configuration auxiliaire prévaut sur la configuration principale.
Avant de commencer
Rôles requis
Pour obtenir l'autorisation dont vous avez besoin pour créer un métastore Dataproc qui utilise des versions auxiliaires, demandez à votre administrateur de vous accorder les rôles IAM suivants sur votre projet, conformément au principe du moindre privilège:
-
Accorder un contrôle total sur les ressources Dataproc Metastore (
roles/metastore.editor
) -
Accorder un accès complet à toutes les ressources Dataproc Metastore, y compris l'administration des stratégies IAM (
roles/metastore.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la page Gérer l'accès aux projets, aux dossiers et aux organisations.
Ce rôle prédéfini contient l'autorisation metastore.services.create
, qui est requise pour créer un métastore Dataproc qui utilise des versions auxiliaires.
Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les rôles et les autorisations spécifiques de Dataproc Metastore, consultez Gérer l'accès à Dataproc avec IAM.Créer une version auxiliaire pour un nouveau service
L'exemple suivant présente une version abrégée des étapes à suivre pour activer les versions auxiliaires. Pour obtenir des instructions détaillées sur l'ensemble du processus à suivre, consultez Créer un Dataproc Metastore.
Console
Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :
En haut de la page Dataproc Metastore, cliquez sur le bouton Créer.
La page Create service (Créer un service) s'ouvre.
Sous Configuration de la version auxiliaire, activez les versions auxiliaires.
Cliquez sur Ajouter une version auxiliaire.
Saisissez un nom pour votre version auxiliaire.
Sélectionnez une version pour votre version auxiliaire.
Facultatif: pour appliquer un mappage à la version auxiliaire, cliquez sur + Ajouter des remplacements.
Cliquez sur OK.
Choisissez les configurations restantes pour votre service, si nécessaire.
Cliquez sur Envoyer.
CLI gcloud
Pour créer un service Dataproc Metastore avec une version auxiliaire, exécutez l'une des commandes
gcloud metastore services create
suivantes:gcloud metastore services create SERVICE \ --location=LOCATION \ --auxiliary-versions=AUXILIARY_VERSIONS, ...
SERVICE
: nom de votre service Dataproc Metastore.LOCATION
: région dans laquelle vous souhaitez créer votre service Dataproc Metastore.AUXILIARY_VERSIONS
: liste des versions du métastore Hive à déployer pour votre version auxiliaire, séparées par une virgule. Seule une version auxiliaire est acceptée. Utilisez le format suivant :"2.3.6"
.AUXILIARY_VERSIONS_FROM_FILE
: chemin d'accès à un fichier YAML contenant la configuration des versions auxiliaires. Pour en savoir plus et obtenir un exemple, consultez la documentation du SDK.
Vérifiez que la création a réussi.
curl
Pour créer un service Dataproc Metastore avec une version auxiliaire, utilisez la méthode create
.
curl -X POST -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID
Remplacez les éléments suivants :
SERVICE_ID
: nom de votre nouveau service Dataproc Metastore.PROJECT_ID
: ID du projet Google Cloud dans lequel vous créez le service Dataproc Metastore.LOCATION
: région où se trouve votre Dataproc Metastore.AUX_VERSIONS
: liste des versions de métastore Hive à déployer, séparées par une virgule. Seule une version auxiliaire est acceptée.
Mettre à jour une version auxiliaire pour un service existant
Les instructions suivantes vous expliquent comment mettre à jour un service Dataproc Metastore existant qui utilise des versions auxiliaires.
Lorsque vous exécutez une opération de mise à jour, vous pouvez effectuer les tâches suivantes:
- Ajoutez une version auxiliaire.
- Supprimez une version auxiliaire existante.
Ajoutez ou modifiez des forçages d'une version auxiliaire existante.
Console
Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :
Sur la page Dataproc Metastore, cliquez sur le nom du service que vous souhaitez modifier.
La page Informations sur le service s'ouvre.
Dans l'onglet Configuration, cliquez sur Modifier.
La page Modifier le service s'ouvre.
Dans la section Configuration des versions auxiliaires, cliquez sur le bouton bascule pour activer ou désactiver les versions auxiliaires.
Vous pouvez effectuer les tâches suivantes:
Pour supprimer une version auxiliaire existante, cliquez sur Supprimer.
Pour ajouter une version auxiliaire, cliquez sur Ajouter une version auxiliaire.
Pour appliquer un mappage de forçage à une version auxiliaire, cliquez sur + Ajouter des forçages.
Cliquez sur Envoyer.
CLI gcloud
Pour mettre à jour un service Dataproc Metastore qui utilise une version auxiliaire, exécutez l'une des commandes
gcloud metastore services update
suivantes:gcloud metastore services update SERVICE \ --location=LOCATION \ --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
ou
gcloud metastore services update SERVICE \ --location=LOCATION \ --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
Remplacez les éléments suivants :
SERVICE
: nom de votre service Dataproc Metastore.LOCATION
: région où se trouve votre Dataproc Metastore.AUXILIARY_VERSIONS
: liste des versions de métastore Hive auxiliaires à déployer, séparées par une virgule.AUXILIARY_VERSIONS_FROM_FILE
: chemin d'accès à un fichier YAML contenant la configuration des versions auxiliaires. Pour en savoir plus et obtenir un exemple, consultez la documentation du SDK.
Vérifiez que la mise à jour a bien été effectuée.
curl
Pour mettre à jour un service Dataproc Metastore qui utilise une version auxiliaire, utilisez la méthode patch
.
curl -X PATCH -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions
Remplacez les éléments suivants :
SERVICE_ID
: nom de votre service Dataproc Metastore.PROJECT_ID
: ID du projet Google Cloud dans lequel vous créez le cluster de service Dataproc Metastore.LOCATION
: région dans laquelle se trouve votre Dataproc Metastore.AUX_VERSIONS
: liste des versions de métastore Hive auxiliaires à déployer, séparées par une virgule.