Créer un service

Pour créer un service Dataproc Metastore, saisissez les paramètres de service sur la page "Créer un service" ouverte dans un navigateur local, utilisez l'outil gcloud ou émettez une méthode API Dataproc Metastore services.create.

Lorsque vous créez un service, vous devez en spécifier la région. Consultez la section Emplacements cloud pour en savoir plus sur les emplacements compatibles avec Dataproc Metastore.

Des champs supplémentaires incluent la version du métastore, le réseau, le port et le niveau de service. Notez que si vous ne spécifiez pas de réseau, Dataproc Metastore utilise le réseau default du projet de service. Dataproc Metastore utilise une adresse IP privée. Ainsi, seules les VM d'un même réseau peuvent accéder au service Dataproc Metastore.

Avant de commencer

  • Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  • Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  • Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  • Activez l'API Dataproc Metastore.

    Activer l'API

  • Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  • Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  • Activez l'API Dataproc Metastore.

    Activer l'API

  • La plupart des commandes gcloud metastore nécessitent un emplacement. Vous pouvez le spécifier à l'aide de l'option --location ou en définissant l'emplacement par défaut.

  • Ne définissez pas la contrainte de règle d'administration pour limiter l'appairage VPC. Si vous spécifiez constraints/compute.restrictVpcPeering, votre requête de création échoue avec une erreur INVALID_ARGUMENT. Si vous devez définir la contrainte, exécutez la commande suivante pour autoriser under:folders/270204312590 :

    gcloud resource-manager org-policies allow compute.restrictVpcPeering under:folders/270204312590 --organization ORGANIZATION_ID
    

    Pour en savoir plus, consultez la section Contraintes de règles d'administration.

  • Si vous souhaitez activer Kerberos pour votre instance de métastore Hive, vous devez :

    • Héberger votre propre centre de distribution de clés Kerberos (KDC)
    • Configurer la connectivité IP entre le réseau VPC et votre KDC
    • Configurer un secret fournir par Secret Manager contenant le contenu d'un fichier keytab Hive
    • Spécifier un principal qui se trouve à la fois dans le KDC et dans l'onglet Hive Keytab
    • Spécifier un fichier krb5.conf dans un bucket Google Cloud Storage

    Pour en savoir plus, consultez la section Configurer Kerberos.

Configurer un VPC partagé

  • Pour créer un service Dataproc Metastore accessible dans un réseau appartenant à un projet différent de celui auquel le service appartient, vous devez accorder roles/metastore.serviceAgent à l'agent de service Dataproc Metastore du projet de service (service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com ) dans la stratégie IAM du projet réseau.

    gcloud projects add-iam-policy-binding NETWORK_PROJECT_ID \
        --role "roles/metastore.serviceAgent" \
        --member "serviceAccount:service-SERVICE_PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com"
    

Contrôle des accès

  • Pour créer un service, vous devez demander un rôle IAM contenant l'autorisation IAM metastore.services.create. Les rôles spécifiques à Dataproc Metastore roles/metastore.admin et roles/metastore.editor incluent l'autorisation de créer.

  • Les anciens rôles roles/owner et roles/editor permettent d'accorder l'autorisation de créer à des utilisateurs ou des groupes.

Pour en savoir plus, consultez la page IAM et contrôle des accès Dataproc Metastore.

Créer un service Dataproc Metastore

Les instructions suivantes montrent comment créer un service Dataproc Metastore.

Console

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

    Ouvrir Dataproc Metastore dans Cloud Console

  2. En haut de la page Dataproc Metastore, cliquez sur le bouton Créer. La page Create service (Créer un service) s'ouvre.

    Page "Créer un service"
  3. Dans le champ Nom du service, saisissez un nom unique pour votre service. Pour en savoir plus sur la convention d'attribution de noms, consultez la section Convention d'attribution de noms aux ressources.

  4. Sélectionnez Data location (Emplacement des données).

  5. Sélectionnez la Version du métastore Hive. Si elle n'est pas spécifiée, la version 3.1.2 est utilisée. Pour plus d'informations, consultez les règles de versions.

  6. Sélectionnez la version disponible. Si aucune valeur n'est spécifiée, Stable est utilisé. Pour en savoir plus, consultez la section Version disponible.

  7. Indiquez le port. Il s'agit du port TCP sur lequel l'interface de Dataproc Metastore est disponible. S'il n'est pas fourni, le numéro de port 9083 est utilisé.

  8. Sélectionnez le niveau de service. Ce paramètre a une incidence sur la capacité du service. Developer est le niveau par défaut. Il est adapté à une démonstration de faisabilité à faible coût, car il fournit une évolutivité limitée et aucune tolérance aux pannes. Le niveau Enterprise fournit une évolutivité flexible, une tolérance aux pannes et une haute disponibilité multizone. Il peut gérer d'importantes charges de travail Dataproc Metastore.

  9. Sélectionnez le réseau. Le service doit être associé au même réseau auquel d'autres clients Metastore, tels que le cluster Dataproc, doivent être associés pour y accéder. S'il n'est pas spécifié, le réseau default défaut est utilisé.

    Facultatif: cliquez sur Utiliser un réseau VPC partagé et saisissez l'ID du projet et le nom du réseau VPC partagé. Pour en savoir plus, consultez la page VPC Service Controls avec Dataproc Metastore.

  10. Facultatif: Activez la synchronisation avec Data Catalog. Pour en savoir plus, consultez la page Synchronisation Dataproc Metastore vers Data Catalog.

  11. Facultatif : sélectionnez le jour de la semaine et l'heure de la journée pour l'intervalle de maintenance du service. Pour plus d'informations, consultez la page Intervalles de maintenance.

  12. Facultatif : activez un fichier keytab Kerberos :

    1. Cliquez sur le bouton d'activation pour activer Kerberos.

    2. Sélectionnez ou saisissez l'ID de ressource du secret.

    3. Vous pouvez soit utiliser la dernière version du secret, soit sélectionner une version plus ancienne.

    4. Saisissez le principal Kerberos. Il s'agit du principal alloué à ce service Dataproc Metastore.

    5. Accédez au fichier de configuration krb5.

  13. Facultatif: Cliquez sur Use a customer managed encryption key (CMEK) (Utiliser une clé de chiffrement gérée par le client) et sélectionnez une clé gérée par le client. Pour en savoir plus, consultez la section Utiliser des clés de chiffrement gérées par le client.

  14. Facultatif: pour appliquer un mappage au métastore Hive, cliquez sur + Ajouter des remplacements.

  15. Facultatif: pour ajouter des métadonnées supplémentaires à la ressource de service de métastore, cliquez sur + Ajouter des libellés.

  16. Pour créer et démarrer le service, cliquez sur le bouton Submit (Envoyer).

  17. Vérifiez que vous êtes revenu sur la page Dataproc Metastore et que votre nouveau service apparaît dans la liste.

gcloud

  1. Exécutez la commande gcloud metastore services create suivante pour créer un service.

    gcloud metastore services create SERVICE \
        --location=LOCATION \
        --labels=k1=v1,k2=v2,k3=v3 \
        --network=NETWORK \
        --port=PORT \
        --tier=TIER \
        --hive-metastore-version=HIVE_METASTORE_VERSION \
        --release-channel=RELEASE_CHANNEL \
        --hive-metastore-configs=K1=V1,K2=V2 \
        --kerberos-principal=KERBEROS_PRINCIPAL \
        --krb5-config=KRB5_CONFIG \
        --keytab=CLOUD_SECRET
        --encryption-kms-key=KMS_KEY
    

    Remplacez les éléments suivants :

    • SERVICE : nom du nouveau service.
    • LOCATION : fait référence à une région Google Cloud.
    • k1=v1,k2=v2,k3=v3 : libellés utilisés.
    • NETWORK: nom du réseau VPC sur lequel le service est accessible. Lorsque vous utilisez un réseau VPC appartenant à un projet différent de celui du service, l'intégralité du nom de ressource relatif doit être fourni, par exemple projects/HOST_PROJECT/global/networks/NETWORK_ID.
    • PORT : port TCP sur lequel l'interface du métastore Thrift est disponible. Par défaut : 9083.
    • TIER : capacité du niveau du nouveau service.
    • HIVE_METASTORE_VERSION : versions du métastore Hive pouvant être utilisées lors de la création d'un service de métastore à cet emplacement. Le serveur garantit qu'un seul élément HiveMetastoreVersion de la liste est défini sur is_default.
    • RELEASE_CHANNEL: version disponible du service.
    • K1=V1,K2=V2 : (facultatif) configurations du métastore Hive utilisées.
    • KERBEROS_PRINCIPAL : (facultatif) principal Kerberos existant dans le fichier keytab et le KDC. Un principal se présente généralement sous la forme "primary/instance@REALM", mais il n'existe pas de format strictement défini.
    • KRB5_CONFIG : (facultatif) le fichier krb5.config spécifie les informations du KDC et du domaine Kerberos, qui incluent les emplacements des KDC et les valeurs par défaut du domaine et des applications Kerberos.
    • CLOUD_SECRET : (facultatif) nom de ressource relatif d'une version de secret fourni par Secret Manager.
    • KMS_KEY: fait référence à l'ID de ressource de la clé.
  2. Vérifiez que la création a réussi.

REST

Suivez les instructions de l'API pour créer un service à l'aide de l'explorateur d'API.

Utiliser des plages d'adresses IP privées non-RFC 1918

Le réseau VPC fourni peut manquer d'adresses RFC 1918 disponibles requises par les services Dataproc Metastore. Dans ce cas, Dataproc Metastore tente de réserver des plages d'adresses IP privées en dehors des plages RFC 1918 pour la création de services. Pour obtenir la liste des plages privées non-RFC 1918 compatibles, consultez la section Plages valides dans la documentation du réseau VPC.

Les adresses IP privées non-RFC 1918 utilisées dans Dataproc Metastore peuvent entrer en conflit avec une plage d'un réseau sur site connecté au réseau VPC fourni. Pour vérifier la liste des adresses IP privées RFC 1918 et non-RFC 1918 réservées par Dataproc Metastore, procédez comme suit:

gcloud compute addresses list \
    --project NETWORK_PROJECT_ID \
    --filter="purpose:VPC_PEERING AND name ~ cluster|resourcegroup"

Si un conflit est déterminé et ne peut pas être atténué en reconfigurant le réseau sur site, supprimez le service Dataproc Metastore défaillant, puis recréez-le après deux heures.

Après avoir créé un service Dataproc Metastore

Après avoir créé un service, vous pouvez créer et associer un cluster Dataproc ou un cluster autogéréApache Hive/Apache Spark/Presto qui utilise le service comme son métastore Hive.

Étape suivante