Metastore Hive

Dataproc Metastore est un métastore (HMS) Apache Hive sans serveur, entièrement géré, à disponibilité élevée, autoréparation et exécuté sur Google Cloud.

Pour gérer entièrement vos métadonnées, Dataproc Metastore mappe vos données aux tables Apache Hive.

Versions d'Apache Hive compatibles

Dataproc Metastore n'est compatible qu'avec des versions spécifiques d'Apache Hive. Pour en savoir plus, consultez les règles relatives aux versions de Hive.

Comment Hive gère les métadonnées

Étant donné que Dataproc Metastore est un métastore Hive, il est important de comprendre comment il gère vos métadonnées.

Par défaut, toutes les applications Hive peuvent avoir des tables internes gérées ou des tables externes non gérées. Cela signifie que les métadonnées que vous stockez dans un service Dataproc Metastore peuvent exister à la fois dans des tables internes et externes.

Lors de la modification des données, un service Dataproc Metastore (Hive) traite les tables internes et externes différemment.

  • Tables internes. Gère les métadonnées et les données de table.
  • Tables externes. Gère uniquement les métadonnées.

Par exemple, si vous supprimez une définition de table à l'aide de l'instruction SQL Hive DROP TABLE:

drop table foo
  • Tables internes. Dataproc Metastore supprime toutes les métadonnées. Les fichiers associés à la table sont également supprimés.

  • Tables externes. Dataproc Metastore ne supprime que les métadonnées. Elle conserve les données associées à la table.

Répertoire d'entrepôt Hive

Dataproc Metastore utilise le répertoire d'entrepôt Hive pour gérer vos tables internes. Le répertoire d'entrepôt Hive est l'endroit où vos données réelles sont stockées.

Lorsque vous utilisez un service Dataproc Metastore, le répertoire d'entrepôt Hive par défaut est un bucket Cloud Storage. Dataproc Metastore n'est compatible qu'avec l'utilisation de buckets Cloud Storage pour le répertoire d'entrepôt. En comparaison, cela diffère d'un HMS sur site, où le répertoire d'entrepôt Hive pointe généralement vers un répertoire local.

Ce bucket est automatiquement créé chaque fois que vous créez un service Dataproc Metastore. Cette valeur peut être modifiée en définissant un remplacement de configuration du métastore Hive sur la propriété hive.metastore.warehouse.dir.

Buckets Cloud Storage d'artefacts

Le bucket d'artefacts stocke vos artefacts Dataproc Metastore, tels que les métadonnées exportées et les données de tables internes gérées.

Lorsque vous créez un service Dataproc Metastore, un bucket Cloud Storage est automatiquement créé dans votre projet. Par défaut, le bucket d'artefacts et le répertoire de l'entrepôt pointent vers le même bucket. Vous ne pouvez pas modifier l'emplacement du bucket des artefacts, mais vous pouvez modifier l'emplacement du répertoire d'entrepôt Hive.

Le bucket d'artefacts se trouve à l'emplacement suivant:

  • gs://your-artifacts-bucket/hive-warehouse.
  • Par exemple, gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4.

Accéder à l'annuaire d'entrepôt Hive

Une fois le bucket créé automatiquement, assurez-vous que votre compte de service de VM Dataproc Metastore est autorisé à accéder au répertoire d'entrepôt Hive. Pour accéder au répertoire de l'entrepôt, accordez à l'agent de service de VM Dataproc Metastore un accès en lecture et en écriture à l'objet de stockage du bucket, à l'aide du rôle roles/storage.objectAdmin. Ce rôle doit être défini au niveau du bucket ou à un niveau supérieur.

Rechercher l'annuaire d'entrepôt Hive

  1. Ouvrez la page Dataproc Metastore.
  2. Cliquez sur le nom de votre service.

    La page "Détails du service" s'ouvre.

  3. Dans le tableau de configuration, recherchez Remplacements de configuration Metastore > hive.metastore.warehouse.dir.

  4. Recherchez la valeur commençant par gs://.

    Cette valeur correspond à l'emplacement de votre répertoire d'entrepôt Hive.

    Valeurs hive.metastore.warehouse.dir

Modifier le répertoire d'entrepôt Hive

Pour utiliser votre propre bucket Cloud Storage avec Dataproc Metastore, définissez un remplacement de configuration Hive Metastore qui pointe vers le nouvel emplacement du bucket.

Si vous modifiez le répertoire d'entrepôt par défaut, suivez ces recommandations.

  • N'utilisez pas la racine du bucket Cloud Storage (gs://mybucket) pour stocker les tables Hive.

  • Assurez-vous que votre compte de service de VM Dataproc Metastore est autorisé à accéder au répertoire d'entrepôt Hive.

  • Pour de meilleurs résultats, utilisez des buckets Cloud Storage situés dans la même région que votre service Dataproc Metastore. Bien que Dataproc Metastore autorise les buckets interrégionaux, les ressources hébergées en colocation sont plus performantes. Par exemple, un bucket multirégional de l'UE ne fonctionne pas bien avec un service us-central1. L'accès interrégional entraîne une latence plus élevée, l'absence d'isolation des défaillances régionales et des frais pour la bande passante réseau interrégionale.

Modifier le répertoire d'entrepôt Hive

  1. Ouvrez la page Dataproc Metastore.
  2. Cliquez sur le nom de votre service.

    La page "Détails du service" s'ouvre.

  3. Dans le tableau de configuration, recherchez Remplacements de configuration Metastore > section hive.metastore.warehouse.dir.

  4. Remplacez la valeur hive.metastore.warehouse.dir par l'emplacement de votre nouveau bucket. Par exemple, gs://my-bucket/path/to/location.

Supprimer votre bucket

La suppression du service Dataproc Metastore ne supprime pas automatiquement votre bucket d'artefacts Cloud Storage. Votre bucket n'est pas supprimé automatiquement, car il peut contenir des données post-service utiles. Pour supprimer votre bucket, exécutez une opération de suppression Cloud Storage.

Étapes suivantes