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 lake di Knowledge Catalog come origine per
la federazione (anteprima), completa i seguenti passaggi:
- Abilita l'API Dataplex nel progetto che contiene un lake di Knowledge Catalog come origine.
Ruoli obbligatori
Per ottenere le autorizzazioni necessarie per creare un servizio di federazione e collegare un cluster Managed Service for Apache Spark, seguendo il principio del privilegio minimo, chiedi all'amministratore di concederti i seguenti ruoli IAM:
-
Per accedere al servizio di federazione:
Accessore 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 for Apache Spark:
Worker Managed Service for Apache Spark (
roles/dataproc.worker) nel service account della VM Managed Service for 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 ai lake di Knowledge Catalog (anteprima): utilizza un ruolo predefinito di 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 for Apache Spark, seguendo il principio del privilegio minimo. Per vedere quali sono esattamente le autorizzazioni richieste, espandi la sezione Autorizzazioni obbligatorie:
Autorizzazioni obbligatorie
Le seguenti autorizzazioni sono necessarie per creare un servizio di federazione e collegare un cluster Managed Service for Apache Spark, seguendo il principio del privilegio minimo:
-
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 ai lake di Knowledge Catalog (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 for 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 for 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 saperne di più, consulta Convenzione di 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.
Per 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 lake di Knowledge Catalog (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 il servizio 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 lake di Knowledge Catalog.
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 for 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 di nomi di database. Il servizio di federazione esegue prima una 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 for 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 FEDERATION \ --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 di nomi di database. Il servizio di federazione esegue prima una 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 for Apache Spark a un servizio di federazione
Le seguenti istruzioni mostrano come creare un cluster Managed Service for 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 for 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 for Apache Spark.PROJECT_ID: l' Google Cloud ID progetto del progetto in cui stai creando il cluster Managed Service for Apache Spark.LOCATION: la regione del cluster Managed Service for Apache Spark.IMAGE_VERSION: la versione dell'immagine Managed Service for Apache Spark che vuoi utilizzare.Assicurati che l'immagine Managed Service for Apache Spark che stai utilizzando in questo comando sia compatibile con la versione di Hive utilizzata con il servizio di federazione. Per saperne di più, consulta Elenco delle versioni delle immagini di Managed Service for Apache Spark.
SERVICE_ACCOUNT(facoltativo): il account di servizio che stai utilizzando per creare il cluster Managed Service for 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.