Questa pagina spiega come creare un servizio di federazione dei metadati per Dataproc Metastore. Un servizio di federazione ti consente di accedere ai metadati archiviati in più origini da un singolo endpoint gRPC.
Per saperne di più su come funziona la federazione e sui suoi limiti, consulta Informazioni sulla federazione dei metadati.
Prima di iniziare
- Abilita Dataproc Metastore.
- Crea un servizio Dataproc Metastore che utilizza l'endpoint gRPC.
- (Facoltativo) Se utilizzi un'origine BigQuery per la federazione, completa i seguenti passaggi:
- Abilita l'API BigQuery nel progetto che contiene l'origine BigQuery.
- Abilita l'API Resource Manager.
- (Facoltativo) Se utilizzi un Knowledge Catalog Lake come origine per
la federazione (anteprima), completa i seguenti passaggi:
- Abilita l'API Dataplex nel progetto che contiene un Knowledge Catalog Lake come origine.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un servizio di federazione e collegare un cluster Managed Service per Apache Spark, seguendo il principio del privilegio minimo, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per accedere al servizio di federazione:
Funzione di accesso alla federazione (
roles/metastore.federationAccessor) nell'account utente o nel account di servizio -
Per concedere il controllo completo di tutte le risorse Dataproc Metastore:
Editor Dataproc Metastore (
roles/metastore.editor) nell'account utente o nel account di servizio -
Per completare le operazioni sui metadati in un Dataproc Metastore configurato con un servizio di federazione:
Proprietario del metastore (
metastore.metadataEditor) nell'account utente o nel account di servizio -
Per creare un cluster Managed Service per Apache Spark:
Worker di Managed Service per Apache Spark (
roles/dataproc.worker) nel service account della VM di Managed Service per Apache Spark - (Facoltativo) Per accedere ai set di dati BigQuery: utilizza un ruolo predefinito BigQuery appropriato per il tuo caso d'uso nell'account utente o nel account di servizio
- (Facoltativo) Per accedere a Knowledge Catalog Lakes (anteprima): utilizza un ruolo predefinito Knowledge Catalog appropriato per il tuo caso d'uso nell'account utente o nel account di servizio
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questi ruoli predefiniti contengono le autorizzazioni necessarie per creare un servizio di federazione e collegare un cluster Managed Service per Apache Spark, seguendo il principio del privilegio minimo. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Per creare un servizio di federazione e collegare un cluster Managed Service per Apache Spark, seguendo il principio del privilegio minimo, sono necessarie le seguenti autorizzazioni:
-
Per creare un Dataproc Metastore:
metastore.services.createnell'account utente o nel account di servizio -
Per elencare, ottenere, creare, aggiornare ed eliminare un servizio di federazione:
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.listnell'account utente o nel account di servizio -
Per completare le operazioni sui metadati in 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.getIamPolicynell'account utente o nel account di servizio -
(Facoltativo) Per accedere ai set di dati BigQuery:
For more information, see BigQuery permissionsnell'account utente o nel account di servizio -
(Facoltativo) Per accedere a Knowledge Catalog Lakes (anteprima):
For more information, see Knowledge Catalog permissionsnell'account utente o nel account di servizio
Potresti anche ottenere queste autorizzazioni con ruoli personalizzati o altri ruoli predefiniti.
Per saperne di più sui ruoli e sulle autorizzazioni specifici di Dataproc Metastore, consulta Gestire l'accesso a Dataproc Metastore con Identity and Access Management.Creare un servizio di federazione
Le seguenti istruzioni mostrano come creare un servizio di federazione e collegarlo a un'origine. Dopo aver completato questi passaggi, puoi collegare il servizio di federazione a un cluster Managed Service per Apache Spark.
Per saperne di più sulle origini di federazione e sui relativi limiti, consulta Origini dei metadati.
Console
Nella Google Cloud console, apri la pagina Dataproc Metastore:
Nel menu di navigazione di Managed Service per Apache Spark, fai clic su Federazione.
Si apre la pagina dei servizi metastore Federati.
Nella barra dei menu del metastore Federato, fai clic su Crea.
Si apre la pagina Crea servizio di federazione.
Nel campo Nome federazione, inserisci un nome univoco per il servizio.
Per ulteriori informazioni, consulta le convenzioni per la denominazione delle risorse.
Seleziona la Località dei dati.
Assicurati di creare il servizio di federazione nelle stesse regioni delle origini Dataproc Metastore.
Seleziona la versione di Hive.
Per aggiungere un'origine per il servizio di federazione, fai clic su Aggiungi un'origine.
Puoi aggiungere una o più origini. La prima origine che aggiungi a questo elenco viene impostata automaticamente come metastore principale. Puoi aggiornare l'ordinamento delle origini dopo la creazione.
In Tipo di origine, seleziona l'origine della federazione.
Puoi scegliere un'istanza Dataproc Metastore, un progetto che contiene uno o più set di dati BigQuery, o un Knowledge Catalog Lake (anteprima)).
Nel campo Origine, inserisci le seguenti informazioni:
Per un servizio Dataproc Metastore.
Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona il progetto che contiene il Dataproc Metastore che vuoi utilizzare come origine.
Assicurati che le origini Dataproc Metastore utilizzino una versione di Hive compatibile con il servizio di federazione. Il metastore principale deve utilizzare una versione di Hive maggiore o uguale a quella del servizio di federazione.
Nel menu a discesa Servizio metastore, seleziona il Dataproc Metastore che vuoi utilizzare come origine.
(Facoltativo) Seleziona la casella di controllo Mostra i servizi metastore al di fuori della mia regione. Viene visualizzato l'elenco dei servizi Dataproc Metastore di altre regioni.
Per BigQuery. Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona l'ID progetto del progetto che contiene il set di dati BigQuery.
Per Knowledge Catalog (anteprima). Nel campo Progetto selezionato, fai clic su Sfoglia e seleziona l'ID progetto del progetto che contiene il Knowledge Catalog Lake.
Fai clic su Fine.
Per creare e avviare il servizio, fai clic su Invia.
Ora puoi collegare il servizio di federazione a un cluster Managed Service per Apache Spark.
Gcloud CLI
Per creare una federazione con Dataproc Metastore, esegui il comando seguente.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Sostituisci quanto segue:
FEDERATION: il nome del servizio di federazione Dataproc Metastore.LOCATION: la Google Cloud regione in cui creare la federazione.RANK: un numero di ranking per ciascuno dei metastore di backend utilizzati per risolvere i conflitti dei nomi dei database. Il servizio di federazione esegue prima le query sui numeri di ranking più bassi. Ad esempio, viene eseguita una query su un metastore di backend con un ranking di1prima di un metastore con un ranking di2. Questo valore deve essere un numero intero. Ad esempio,--backends 1=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: la risorsa relativa di ogni metastore di backend nel seguente formato:METASTORE_TYPE:METASTORE_NAME. Per i servizi Dataproc Metastore, utilizzadpms:SERVICE_ID. IlSERVICE_IDè disponibile nella seguente posizione:projects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: la versione di Hive Metastore (3.1.2 o 2.3.6).
Aggiornare un servizio di federazione
Le seguenti istruzioni mostrano come aggiornare un servizio di federazione. Puoi completare le seguenti attività:
- Aggiungere un'origine a un servizio di federazione.
- Rimuovere un'origine da un servizio di federazione.
- Modificare l'ordinamento delle origini contenute in un servizio di federazione.
Eliminare definitivamente un servizio di federazione. Dopo aver eliminato un servizio, tutte le relative risorse vengono rilasciate.
Console
https://cloud.google.com/dataproc-metastore/docs/create-federation
Nella Google Cloud console, apri la pagina Dataproc Metastore:
Nel menu di navigazione di Managed Service per Apache Spark, fai clic su Federazione.
Si apre la pagina dei servizi metastore Federati.
Nella pagina dei servizi metastore Federati, fai clic sul nome del servizio che vuoi aggiornare.
Si apre la pagina Dettagli servizio.
Nella barra dei menu, fai clic su Modifica.
Si apre la pagina Modifica servizio.
Scegli i valori che vuoi aggiornare.
Per aggiornare il servizio, fai clic su Invia.
Gcloud CLI
Per aggiornare una federazione con Dataproc Metastore, esegui il comando seguente.
gcloud metastore federations update FEDERATATON \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION: il nome del servizio di federazione Dataproc Metastore.LOCATION: La Google Cloud regione in cui creare la federazione.RANK: un numero di ranking per ciascuno dei metastore di backend utilizzati per risolvere i conflitti dei nomi dei database. Il servizio di federazione esegue prima le query sui numeri di ranking più bassi. Ad esempio, viene eseguita una query su un metastore di backend con un ranking di1prima di un metastore con un ranking di2. Questo valore deve essere un numero intero. Ad esempio,--backends 2=first_backend_metastore, 2=second_backend_metastore.BACKEND_METASTORE: la risorsa relativa di ogni metastore di backend nel seguente formato:METASTORE_TYPE:METASTORE_NAME. Per i servizi Dataproc Metastore, utilizzadpms:SERVICE_ID. IlSERVICE_IDè disponibile nella seguente posizione:projects/<project>/locations/<location>/services/<service-id>.HIVE_VERSION: la versione di Hive Metastore (3.1.2 o 2.3.6).
Collegare un cluster Managed Service per Apache Spark a un servizio di federazione
Le seguenti istruzioni mostrano come creare un cluster Managed Service per Apache Spark e collegare un endpoint del servizio di federazione come metastore.
Prima di iniziare a seguire queste istruzioni, completa tutti i passaggi elencati in Prima di iniziare e crea un servizio di federazione.
Gcloud CLI
Per creare un cluster Managed Service per Apache Spark e collegare un endpoint di federazione,
esegui il seguente gcloud Managed Service for Apache Spark clusters create comando.
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"Sostituisci quanto segue:
CLUSTER_NAME: il nome del nuovo cluster Managed Service per Apache Spark.PROJECT_ID: l' Google Cloud ID progetto del progetto in cui stai creando il cluster Managed Service per Apache Spark.LOCATION: la regione del cluster Managed Service per Apache Spark.IMAGE_VERSION: la versione dell'immagine di Managed Service per Apache Spark che vuoi utilizzare.Assicurati che l'immagine di Managed Service per Apache Spark che utilizzi in questo comando sia compatibile con la versione di Hive utilizzata con il servizio di federazione. Per saperne di più, consulta l'elenco delle versioni delle immagini di Managed Service per Apache Spark.
SERVICE_ACCOUNT(facoltativo): il account di servizio che utilizzi per creare il cluster Managed Service per Apache Spark. Se non viene specificato, il cluster utilizza il service account Compute Engine predefinito.FEDERATION_URI: l'URI dell'endpoint del servizio di federazione.FEDERATION_VERSION: la versione di Hive utilizzata dal servizio di federazione.WAREHOUSE_DIR: la directory del warehouse del Dataproc Metastore principale.