Versions auxiliaires

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:

  • 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:

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

  1. Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :

    Ouvrir Dataproc Metastore

  2. En haut de la page Dataproc Metastore, cliquez sur le bouton Créer.

    La page Create service (Créer un service) s'ouvre.

  3. Sous Configuration de la version auxiliaire, activez les versions auxiliaires.

  4. Cliquez sur Ajouter une version auxiliaire.

    1. Saisissez un nom pour votre version auxiliaire.

    2. Sélectionnez une version pour votre version auxiliaire.

    3. Facultatif: pour appliquer un mappage à la version auxiliaire, cliquez sur + Ajouter des remplacements.

    4. Cliquez sur OK.

  5. Choisissez les configurations restantes pour votre service, si nécessaire.

  6. Cliquez sur Envoyer.

CLI gcloud

  1. 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.
  2. 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

  1. Dans la console Google Cloud, ouvrez la page "Dataproc Metastore" :

    Ouvrir Dataproc Metastore

  2. Sur la page Dataproc Metastore, cliquez sur le nom du service que vous souhaitez modifier.

    La page Informations sur le service s'ouvre.

  3. Dans l'onglet Configuration, cliquez sur Modifier.

    La page Modifier le service s'ouvre.

  4. 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:

    1. Pour supprimer une version auxiliaire existante, cliquez sur Supprimer.

    2. Pour ajouter une version auxiliaire, cliquez sur Ajouter une version auxiliaire.

    3. Pour appliquer un mappage de forçage à une version auxiliaire, cliquez sur + Ajouter des forçages.

  5. Cliquez sur Envoyer.

CLI gcloud

  1. 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.
  2. 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.

Étape suivante