Federazione dei metadati

La federazione di metadati consente di accedere ai metadati archiviati in più istanze di Dataproc Metastore.

Per impostare la federazione, devi creare un servizio di federazione e configurare più istanze Dataproc Metastore come metastore di backend. Il servizio di federazione espone quindi un singolo endpoint gRPC, che puoi utilizzare per accedere ai metadati in tutte le istanze del metastore.

Ad esempio, puoi creare un cluster Dataproc ed esporre tutti i servizi Dataproc Metastore tramite un singolo endpoint. Successivamente, potrai eseguire job di big data tramite motori software open source (OSS), come Spark o Hive, per accedere ai metadati in più istanze del metastore.

Come funziona la federazione

I carichi di lavoro per big data OSS eseguiti su Spark o Hive inviano richieste all'API Hive Metastore per recuperare i metadati in fase di runtime. Quando invii le richieste, l'interfaccia Hive Metastore supporta sia i metodi di lettura che di scrittura. Il servizio della federazione espone una versione gRPC dell'interfaccia di Hive Metastore.

In fase di runtime, quando il servizio federato riceve una richiesta, completa una delle seguenti azioni:

  • Se la richiesta contiene un nome di database, viene instradato al metastore di backend che contiene questo database. Se più metastore contengono lo stesso nome di database, la richiesta viene instradata al metastore con il ranking più basso nell'ordinamento delle origini (noto anche come metastore principale).
  • Se la richiesta non contiene un nome di database, viene instradato al metastore più basso nell'ordine di origine.
  • Se nessuno dei metastore contiene un database, il motore OSS risponde con l'equivalente di un errore non trovato.

Limitazioni

Ai servizi di federazione si applicano le seguenti restrizioni:

  • I servizi di federazione sono disponibili solo tramite endpoint gRPC. Devi creare i servizi Dataproc Metastore con endpoint gRPC per includerli in un servizio federazione.
  • I servizi di federazione devono trovarsi nella stessa area geografica di qualsiasi metastore associato. Ad esempio, se crei il servizio di federazione in us-central1, devi creare anche i tuoi metastore in us-central1.

Origini dei metadati

Quando crei un servizio di federazione, devi aggiungere un'origine di metadati. Le origini dei metadati sono soggette alle seguenti limitazioni:

  • Un servizio di federazione non contiene i propri dati. Il servizio di federazione pubblica invece i metadati da una delle sue origini metadati.
  • Un servizio di federazione non può essere una fonte di metadati in un altro servizio di federazione.

Tipi di fonte

Per compilare i metadati nel servizio di federazione, puoi utilizzare le seguenti origini:

  • Un servizio Dataproc Metastore.

Ordinamento delle fonti

Il servizio della federazione elabora le richieste di metadati in ordine di priorità. Questo concetto è noto come ordine di origine.

Quando invii una richiesta al servizio della federazione, il provider controlla l'ordine di origine e decide quale metastore chiamare per restituire i metadati applicabili.

Il metastore con il ranking dell'ordine di origine più basso (ovvero il primo nell'elenco) viene definito metastore principale. Se al servizio di federazione viene inviata una richiesta che non specifica un database, viene inviata al metastore principale. Ecco alcuni esempi di richieste Hive Metastore che non specificano un database: set_ugi e create_database.

Prima di iniziare

Controllo dell'accesso

Per utilizzare un servizio federato, devi disporre delle autorizzazioni IAM metastore.federation.* per completare le seguenti azioni:

  • elenco e ottenere le federazioni di Dataproc Metastore
  • creare e aggiornare le federazioni di Dataproc Metastore
  • eliminazione delle federazioni Dataproc Metastore

L'account utente o l'account di servizio utilizzato per accedere ai metadati tramite il servizio di federazione deve disporre dei seguenti ruoli IAM:

  • Per accedere al servizio della federazione, utilizza il ruolo roles/metastore.federationAccessor.
  • Per completare le operazioni sui metadati in un Dataproc Metastore configurato con un servizio di federazione, aggiungi entrambi i ruoli seguenti:

Per saperne di più, vedi Dataproc Metastore IAM e il controllo dell'accesso.

Crea un servizio di federazione

Le istruzioni riportate di seguito mostrano come creare un servizio di federazione e collegarlo al tuo servizio Dataproc Metastore.

Per creare un servizio di federazione, devi avere già creato uno o più servizi Dataproc Metastore.

console

  1. Nella console, apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore nella console

  2. Nel menu di navigazione di Dataproc, fai clic su Federation.

    Viene visualizzata la pagina di servizi del metastore Federated.

  3. Nel menu di navigazione del metastore Federated, fai clic su Create (Crea).

    Viene visualizzata la pagina Crea servizio federato.

  4. Nel campo Nome servizio, inserisci un nome univoco per il servizio.

    Per ulteriori informazioni, vedi Convenzione di denominazione delle risorse.

  5. Seleziona la Località.

    Verifica che l'area geografica del servizio di federazione sia la stessa del metastore principale.

  6. Seleziona la versione di Hive.

  7. Fai clic su Aggiungi origine per aggiungere un'origine per il servizio di federazione.

    Per un servizio Dataproc Metastore, specifica il suo ID progetto, l'area geografica e l'ID servizio.

    Puoi aggiungere una o più sorgenti. La prima origine che aggiungi all'elenco viene impostata automaticamente come metastore principale. Puoi aggiornare l'ordine della fonte dopo la creazione.

    Assicurati che il metastore principale utilizzi una versione Hive compatibile con il servizio della federazione. Il metastore principale deve utilizzare una versione Hive superiore o uguale al servizio di federazione.

  8. Per creare e avviare il servizio, fai clic su Crea.

Aggiornare un servizio federazione

Le istruzioni riportate di seguito mostrano come aggiornare un servizio federato.

Quando aggiorni un servizio federazione, puoi completare le seguenti attività:

  • Aggiungi un'origine Dataproc Metastore a un servizio di federazione.
  • Rimuovi un'origine Dataproc Metastore da un servizio di federazione.
  • Modifica l'ordine di origine dei Dataproc Metastore contenuti in una federazione.
  • Eliminazione definitiva di una federazione. Una volta eliminata una federazione, tutte le relative risorse vengono svincolate.

console

  1. Nella console, apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore nella console

  2. Nel menu di navigazione di Dataproc, fai clic su Federation.

    Viene visualizzata la pagina di servizi del metastore Federated.

  3. Nella pagina dei servizi di metastore Federated, fai clic sul nome del servizio federato da aggiornare.

    Si apre la pagina Dettagli del servizio relativa al servizio in questione.

  4. Nella barra dei menu, fai clic su Modifica.

    Viene visualizzata la pagina Modifica servizio.

  5. Scegli i valori aggiornati del parametro di federazione.

  6. Per aggiornare il servizio, fai clic su Invia.

Collegamento di un cluster Dataproc a un servizio di federazione

Le istruzioni riportate di seguito mostrano come creare un cluster Dataproc e collegare un endpoint della federazione come metastore. Prima di iniziare queste istruzioni, completa le seguenti attività:

gcloud

Per creare un cluster Dataproc e collegare un endpoint della federazione, esegui il seguente comando gcloud dataproc clusters create.

 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.
  • PROJECT_ID: l'ID del progetto in cui stai creando il cluster Dataproc.
  • LOCATION: l'area geografica del tuo cluster dataproc.
  • IMAGE_VERSION: versione dell'immagine dataproc.
  • SERVICE_ACCOUNT: l'account di servizio che stai utilizzando per creare il cluster Dataproc. Se non è specificato, il cluster utilizza il tuo account di servizio Compute Engine predefinito.
  • FEDERATION_URI: URI dell'endpoint del servizio di federazione.
  • FEDERATION_VERSION: la versione Hive del servizio di federazione.
  • WAREHOUSE_DIR: la directory del magazzino del metastore principale.

Passaggi successivi