Cette page explique comment utiliser la fonctionnalité des 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 d'être compatible avec plusieurs moteurs de traitement de données qui doivent s'exécuter sur différentes versions de métastore Hive.
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 Dataproc version 2.0, tandis que l'autre exécute Dataproc version 1.5. 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 des 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.
Points à prendre en compte
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 métastore Hive infé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:
- Importer des métadonnées, Exporter des métadonnées
Sauvegarde à 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 backend entre les deux versions sont partagées.
Certaines méthodes Hive peuvent ne pas être compatibles entre la version auxiliaire et la version principale. Cette compatibilité dépend des versions de Hive que vous utilisez pour vos versions principale et auxiliaire, ainsi que des méthodes compatibles entre ces versions.
Les fonctions d'une instance principale Dataproc Metastore ne sont pas toutes compatibles avec la version auxiliaire. Par exemple, l'insertion d'enregistrements dans une table transactionnelle Hive n'est pas possible avec un client Hive 2 en interface avec une version auxiliaire 2.3.6. Toutefois, cette opération est possible avec un client Hive 3 interagissant 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 n'est 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 ne sera pas compatible avec l'index si la version principale exécute Hive 3.1.2.
Vous ne pouvez pas créer de tables transactionnelles à l'aide de la version auxiliaire ni insérer de données dans des tables transactionnelles dans la version auxiliaire.
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 séparées entre les deux versions.
Le tableau suivant répertorie ces différences.
Propriétés | Courant | Séparé |
---|---|---|
Point de terminaison | ✓ | |
Remplacements de configuration Hive* | ✓ | |
Configuration Kerberos | ✓ | |
Protocole du point de terminaison (Thrift/gRPC) | ✓ | |
Port Thrift | ✓ | |
Bucket Cloud Storage d'artefacts | ✓ | |
Niveau | ✓ | |
Intervalle de maintenance | ✓ | |
Version disponible | ✓ | |
Configuration du chiffrement | ✓ | |
Database type (Type de base de données) | ✓ | |
Bouton de synchronisation de Data Catalog | ✓ | |
Métrique sur le nombre de requêtes | ✓ | |
Configurations réseau | ✓ |
* Les remplacements de configuration Hive restent séparés entre la version auxiliaire et la version principale. Cependant, la version auxiliaire fait référence à une liste fusionnée des forçages (principal + auxiliaire). Dans ce cas, la configuration auxiliaire est prioritaire sur la configuration principale.
Avant de commencer
Rôles requis
Pour obtenir l'autorisation nécessaire pour créer un Dataproc Metastore utilisant des versions auxiliaires, demandez à votre administrateur de vous attribuer les rôles IAM suivants sur votre projet, selon le principe du moindre privilège:
-
Accorder un contrôle complet sur les ressources Dataproc Metastore (
roles/metastore.editor
) -
Accordez un accès complet à toutes les ressources Dataproc Metastore, y compris pour l'administration des stratégies IAM (
roles/metastore.admin
)
Pour en savoir plus sur l'attribution de rôles, consultez la section Gérer les accès.
Ce rôle prédéfini contient l'autorisation metastore.services.create
, nécessaire pour créer un service Dataproc Metastore 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 autorisations spécifiques de Dataproc Metastore, consultez la page 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 la page Créer un service 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 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 Submit (Envoyer).
gcloud CLI
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. Une seule 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 Dataproc Metastore.AUX_VERSIONS
: liste des versions du métastore Hive à déployer, séparées par une virgule. Une seule version auxiliaire est acceptée.
Mettre à jour une version auxiliaire d'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 remplacements 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 mettre à jour.
La page Détails du service s'ouvre.
Dans l'onglet Configuration, cliquez sur Modifier.
La page Modifier le service s'ouvre.
Dans la section Configuration de la version auxiliaire, cliquez sur le bouton 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 nouvelle version auxiliaire, cliquez sur Add Auxiliary Version (Ajouter une version auxiliaire).
Pour appliquer un mappage de remplacement à une version auxiliaire, cliquez sur + Ajouter des remplacements.
Cliquez sur Submit (Envoyer).
gcloud CLI
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 Dataproc Metastore.AUXILIARY_VERSIONS
: liste des versions auxiliaires du métastore Hive à 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 auxiliaires du métastore Hive à déployer, séparées par une virgule.