Cette page explique comment créer un service de fédération de métadonnées pour Dataproc Metastore. Un service de fédération vous permet d'accéder aux métadonnées stockées dans plusieurs sources à partir d'un seul point de terminaison gRPC.
Pour en savoir plus sur le fonctionnement de la fédération et ses limites, consultez À propos de la fédération de métadonnées.
Avant de commencer
- Activez Dataproc Metastore.
- Créez un service Dataproc Metastore qui utilise le point de terminaison gRPC.
- Facultatif : Si vous utilisez une source BigQuery pour la fédération, procédez comme suit :
- Activez l'API BigQuery dans le projet contenant la source BigQuery.
- Activez l'API Resource Manager.
- Facultatif : Si vous utilisez un lac Knowledge Catalog comme source pour
la fédération (bêta), procédez comme suit :
- Activez l'API Dataplex dans le projet contenant un lac Knowledge Catalog comme source.
Rôles requis
Pour obtenir les autorisations nécessaires pour créer un service de fédération et associer un cluster Managed Service pour Apache Spark, en suivant le principe du moindre privilège, demandez à votre administrateur de vous accorder les rôles IAM suivants :
-
Pour accéder au service de fédération :
Accesseur de fédération (
roles/metastore.federationAccessor) sur le compte utilisateur ou le compte de service -
Pour accorder un contrôle total de toutes les ressources Dataproc Metastore:
Éditeur Dataproc Metastore (
roles/metastore.editor) sur le compte utilisateur ou le compte de service -
Pour effectuer des opérations sur les métadonnées sur un Dataproc Metastore configuré avec un service de fédération :
Propriétaire du métastore (
metastore.metadataEditor) sur le compte utilisateur ou le compte de service -
Pour créer un cluster Managed Service pour Apache Spark :
Worker Managed Service pour Apache Spark (
roles/dataproc.worker) sur le compte de service de la VM Managed Service pour Apache Spark - (Facultatif) Pour accéder aux ensembles de données BigQuery : Utilisez un rôle prédéfini BigQuery approprié applicable à votre cas d’utilisation sur le compte utilisateur ou le compte de service
- (Facultatif) Pour accéder aux lacs Knowledge Catalog (bêta) : Utilisez un rôle prédéfini Knowledge Catalog approprié applicable à votre cas d’utilisation sur le compte utilisateur ou le compte de service
Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.
Ces rôles prédéfinis contiennent les autorisations requises pour créer un service de fédération et associer un cluster Managed Service pour Apache Spark, en suivant le principe du moindre privilège. Pour connaître les autorisations exactes requises, développez la section Autorisations requises :
Autorisations requises
Les autorisations suivantes sont requises pour créer un service de fédération et associer un cluster Managed Service pour Apache Spark, en suivant le principe du moindre privilège :
-
Pour créer un Dataproc Metastore:
metastore.services.createsur le compte utilisateur ou le compte de service -
Pour lister, obtenir, créer, mettre à jour et supprimer un service de fédération :
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.listsur le compte utilisateur ou le compte de service -
Pour effectuer des opérations sur les métadonnées sur un Dataproc Metastore:
metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicysur le compte utilisateur ou le compte de service -
(Facultatif) Pour accéder aux ensembles de données BigQuery :
For more information, see BigQuery permissionssur le compte utilisateur ou le compte de service -
(Facultatif) Pour accéder aux lacs Knowledge Catalog (bêta) :
For more information, see Knowledge Catalog permissionssur le compte utilisateur ou le compte de service
Vous pouvez également obtenir ces autorisations avec des rôles personnalisés ou d'autres rôles prédéfinis.
Pour en savoir plus sur les rôles et autorisations Dataproc Metastore spécifiques, consultez Gérer l'accès à Dataproc Metastore avec Identity and Access Management.Créer un service de fédération
Les instructions suivantes vous expliquent comment créer un service de fédération et l'associer à une source. Une fois ces étapes effectuées, vous pouvez associer votre service de fédération à un cluster Managed Service pour Apache Spark.
Pour en savoir plus sur les sources de fédération et leurs limites, consultez Sources de métadonnées.
Console
Dans la Google Cloud console, ouvrez la page Dataproc Metastore :
Dans le menu de navigation Managed Service pour Apache Spark, cliquez sur Fédération.
La page Federated metastore services (Services de métastore fédérés) s'ouvre.
Dans la barre de menu du métastore Federated (Fédéré), cliquez sur Create (Créer).
La page Create federation service (Créer un service de fédération) s'ouvre.
Dans le champ Federation name (Nom de la fédération), saisissez un nom unique pour votre service.
Pour en savoir plus, consultez la section Recommandation pour l'attribution de noms aux ressources.
Sélectionnez Data location (Emplacement des données).
Assurez-vous de créer votre service de fédération dans les mêmes régions que vos sources Dataproc Metastore.
Sélectionnez la Version de Hive.
Pour ajouter une source à votre service de fédération, cliquez sur Add a Source (Ajouter une source).
Vous pouvez ajouter une ou plusieurs sources. La première source que vous ajoutez à cette liste est automatiquement définie comme métastore principal. Vous pouvez modifier l'ordre des sources après la création.
Pour Source type (Type de source), sélectionnez votre source de fédération.
Vous pouvez choisir une instance Dataproc Metastore, un projet contenant un ou plusieurs ensembles de données BigQuery, ou un lac Knowledge Catalog (bêta)).
Dans le champ Source, saisissez les informations suivantes :
Pour un service Dataproc Metastore :
Dans le champ Selected project (Projet sélectionné), cliquez sur Browse (Parcourir) et sélectionnez le projet contenant le Dataproc Metastore que vous souhaitez utiliser comme source.
Assurez-vous que vos sources Dataproc Metastore utilisent une version de Hive compatible avec votre service de fédération. Votre métastore principal doit utiliser une version de Hive supérieure ou égale à celle de votre service de fédération.
Dans le menu déroulant Metastore service (Service de métastore), sélectionnez le Dataproc Metastore que vous souhaitez utiliser comme source.
(Facultatif) Cochez la case Show Metastore services outside my region (Afficher les services de métastore en dehors de ma région). La liste des services Dataproc Metastore d'autres régions s'affiche.
Pour BigQuery : Dans le champ Selected project (Projet sélectionné), cliquez sur Browse (Parcourir) et sélectionnez l'ID du projet contenant l'ensemble de données BigQuery.
Pour Knowledge Catalog (bêta). Dans le champ Selected project (Projet sélectionné), cliquez sur Browse (Parcourir) et sélectionnez l'ID du projet contenant le lac Knowledge Catalog.
Cliquez sur OK.
Pour créer et démarrer le service, cliquez sur Envoyer.
Vous pouvez maintenant associer votre service de fédération à un cluster Managed Service pour Apache Spark.
Gcloud CLI
Pour créer une fédération avec Dataproc Metastore, exécutez la commande suivante.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Remplacez les éléments suivants :
FEDERATION: nom de votre service de fédération Dataproc Metastore.LOCATION: région dans laquelle créer la fédération. Google CloudRANK: numéro de classement pour chacun de vos métastores de backend utilisé pour résoudre les conflits de noms de base de données. Le service de fédération interroge d'abord les numéros de classement inférieurs. Par exemple, un métastore de backend avec un classement de1est interrogé avant un métastore avec un classement de2. Cette valeur doit être un nombre entier. Par exemple,--backends 1=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: ressource relative de chaque métastore de backend au format suivant :METASTORE_TYPE:METASTORE_NAME. Pour les services Dataproc Metastore, utilisezdpms:SERVICE_ID. LeSERVICE_IDse trouve à l' emplacement suivant :projects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: version de Hive Metastore (3.1.2 ou 2.3.6).
Mettre à jour un service de fédération
Les instructions suivantes vous expliquent comment mettre à jour un service de fédération. Vous pouvez effectuer les tâches suivantes :
- Ajouter une source à un service de fédération.
- Supprimer une source d'un service de fédération.
- Modifier l'ordre des sources contenues dans un service de fédération.
Supprimer définitivement un service de fédération. Une fois que vous avez supprimé un service, toutes ses ressources sont libérées.
Console
https://cloud.google.com/dataproc-metastore/docs/create-federation
Dans la Google Cloud console, ouvrez la page Dataproc Metastore :
Dans le menu de navigation Managed Service pour Apache Spark, cliquez sur Fédération.
La page Federated metastore services (Services de métastore fédérés) s'ouvre.
Sur la page Federated metastore services (Services de métastore fédérés), cliquez sur le nom du service que vous souhaitez mettre à jour.
La page Service detail (Informations sur le service) s'ouvre.
Dans la barre de menu, cliquez sur Edit (Modifier).
La page Edit service (Modifier le service) s'ouvre.
Choisissez les valeurs que vous souhaitez mettre à jour.
Pour mettre à jour le service, cliquez sur Envoyer.
Gcloud CLI
Pour mettre à jour une fédération avec Dataproc Metastore, exécutez la commande suivante.
gcloud metastore federations update FEDERATION \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION: nom de votre service de fédération Dataproc Metastore.LOCATION: région dans laquelle créer la fédération. Google CloudRANK: numéro de classement pour chacun de vos métastores de backend utilisé pour résoudre les conflits de noms de base de données. Le service de fédération interroge d'abord les numéros de classement inférieurs. Par exemple, un métastore de backend avec un classement de1est interrogé avant un métastore avec un classement de2. Cette valeur doit être un nombre entier. Par exemple,--backends 2=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: ressource relative de chaque métastore de backend au format suivant :METASTORE_TYPE:METASTORE_NAME. Pour les services Dataproc Metastore, utilisezdpms:SERVICE_ID. LeSERVICE_IDse trouve à l' emplacement suivant :projects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: version de Hive Metastore (3.1.2 ou 2.3.6).
Associer un cluster Managed Service pour Apache Spark à un service de fédération
Les instructions suivantes vous expliquent comment créer un cluster Managed Service pour Apache Spark et associer un point de terminaison de service de fédération en tant que métastore.
Avant de commencer, suivez toutes les étapes décrites dans Avant de commencer et créez un service de fédération.
Gcloud CLI
Pour créer un cluster Managed Service pour Apache Spark et associer un point de terminaison de fédération,
exécutez la commande gcloud Managed Service for Apache Spark clusters create suivante.
gcloud dataproc clusters create CLUSTER_NAME \
--region=LOCATION \
--project=PROJECT_ID \
--scopes=https://www.googleapis.com/auth/cloud-platform \
--image-version=IMAGE_VERSION \
--service-account=SERVICE_ACCOUNT \
--optional-components=DOCKER \
--initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \
--metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \
--properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"Remplacez les éléments suivants :
CLUSTER_NAME: nom de votre nouveau cluster Managed Service pour Apache Spark.PROJECT_ID: ID du projet dans lequel vous créez le cluster Managed Service pour Apache Spark. Google CloudLOCATION: région de votre cluster Managed Service pour Apache Spark.IMAGE_VERSION: version d'image Managed Service pour Apache Spark que vous souhaitez utiliser.Assurez-vous que l'image Managed Service pour Apache Spark que vous utilisez dans cette commande est compatible avec la version de Hive utilisée avec votre service de fédération. Pour en savoir plus, consultez la liste des versions d'image Managed Service pour Apache Spark.
SERVICE_ACCOUNT(facultatif) : compte de service que vous utilisez pour créer votre cluster Managed Service pour Apache Spark. Si vous ne spécifiez rien, le cluster utilise votre compte de service Compute Engine par défaut.FEDERATION_URI: URI du point de terminaison de votre service de fédération.FEDERATION_VERSION: version de Hive utilisée par votre service de fédération.WAREHOUSE_DIR: répertoire de l'entrepôt de votre Dataproc Metastore principal.