Créer un service

Vous pouvez créer un service Dataproc Metastore à l'aide de Google Cloud Console, de l'outil de ligne de commande gcloud du SDK Cloud dans une fenêtre de terminal local ou dans Cloud Shell, ou à l'aide d'une méthode API 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, le réseau default du projet de service Dataproc Metastore est utilisé. 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

  • Enable billing for the project.

  • Activez l'API Dataproc Metastore.

  • 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 échouera et générer 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.

  • Pour créer un service Dataproc Metastore accessible sur 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{ 10.1(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 disposer d'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 permettent d'accorder une autorisation de création.

  • Les anciens rôles roles/owner et roles/editor permettent également 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 indiquent comment créer un service Dataproc Metastore à l'aide de Google Cloud Console, de l'outil gcloud ou de l'API 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 Service name (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 aucune valeur n'est spécifiée, la version Hive 2.3.6 est utilisée. Pour en savoir plus, consultez la section Règles relatives aux versions.

  6. Sélectionnez la version disponible. Si non spécifié, 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. Si non spécifié, 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 que les autres clients de Metastore, tels que le cluster Dataproc, pour y accéder. Si non spécifié, le réseau default est utilisé.

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

  10. Facultatif: activez la synchronisation Data Catalog pour synchroniser le service Dataproc Metastore avec Data Catalog. Pour plus d'informations, consultez la section Synchronisation du magasin de données Dataproc avec 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 + ADD OVERRIDES (Ajouter des remplacements) pour appliquer un mappage au métastore Hive.

  14. Facultatif : cliquez sur + ADD LABELS (Ajouter des libellés) pour ajouter des métadonnées supplémentaires à la ressource du service de métastore.

  15. Cliquez sur le bouton Submit (Envoyer) pour créer et démarrer le service.

  16. 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
    

    Remplacez l'élément suivant :

    • 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, le nom complet de la ressource 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 définira la valeur 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.
  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 les plages d'adresses IP privées en dehors des plages RFC 1918 pour la création de services. Reportez-vous à la section Plages valides dans la documentation du réseau VPC pour obtenir la liste des plages privées non-RFC 1918 compatibles.

Les adresses IP privées non-RFC 1918 utilisées dans le métastore Dataproc 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 en question, puis en le recréant au bout de 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 Apache Hive/Apache Spark/Presto qui utilise le service comme métastore Hive.

Étape suivante