Metastore Hive

Dataproc Metastore è un metastore Apache Hive (HMS) completamente gestito, a disponibilità elevata, con riparazione automatica e senza server, in esecuzione su Google Cloud.

Per gestire completamente i metadati, Dataproc Metastore mappa i tuoi dati alle tabelle Apache Hive.

Versioni di Apache Hive supportate

Dataproc Metastore supporta solo versioni specifiche di Apache Hive. Per maggiori informazioni, consulta le norme relative alla versione di Hive.

In che modo Hive gestisce i metadati

Poiché Dataproc Metastore è un metastore Hive, è importante capire come gestisce i metadati.

Per impostazione predefinita, tutte le applicazioni Hive possono avere tabelle interne gestite o tabelle esterne non gestite. In altre parole, i metadati archiviati in un servizio Dataproc Metastore possono esistere sia nelle tabelle interne che in quelle esterne.

Quando modifichi i dati, un servizio Dataproc Metastore (Hive) tratta le tabelle interne ed esterne in modo diverso.

  • Tabelle interne. Gestisce sia i metadati che i dati delle tabelle.
  • Tabelle esterne: Gestisce solo i metadati.

Ad esempio, se elimini la definizione di una tabella utilizzando l'istruzione SQL Hive DROP TABLE:

drop table foo
  • Tabelle interne. Dataproc Metastore elimina tutti i metadati. Elimina anche i file associati alla tabella.

  • Tabelle esterne: Dataproc Metastore elimina solo i metadati. Mantiene i dati associati alla tabella.

Directory del warehouse Hive

Dataproc Metastore utilizza la directory del warehouse Hive per gestire le tabelle interne. Nella directory del warehouse Hive vengono archiviati i tuoi dati effettivi.

Quando utilizzi un servizio Dataproc Metastore, la directory predefinita del warehouse Hive è un bucket Cloud Storage. Dataproc Metastore supporta solo l'utilizzo dei bucket Cloud Storage per la directory del warehouse. In confronto, questo è diverso da un HMS on-premise, in cui la directory del warehouse Hive di solito rimanda a una directory locale.

Questo bucket viene creato automaticamente per te ogni volta che crei un servizio Dataproc Metastore. Questo valore può essere modificato impostando un override della configurazione di Hive Metastore nella proprietà hive.metastore.warehouse.dir.

Bucket Cloud Storage di Artifacts

Il bucket di artefatti archivia gli artefatti di Dataproc Metastore, come i metadati esportati e i dati delle tabelle interne gestite.

Quando crei un servizio Dataproc Metastore, nel progetto viene creato automaticamente un bucket Cloud Storage. Per impostazione predefinita, sia il bucket degli artefatti che la directory del warehouse puntano allo stesso bucket. Non puoi modificare la località del bucket degli artefatti, ma puoi cambiare la località della directory del warehouse Hive.

Il bucket degli artefatti si trova nella seguente posizione:

  • gs://your-artifacts-bucket/hive-warehouse.
  • Ad esempio, gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4.

Accedi alla directory del warehouse Hive

Dopo aver creato automaticamente il bucket, assicurati che i tuoi account di servizio Dataproc abbiano l'autorizzazione per accedere alla directory del warehouse Hive.

  • Per accedere alla directory del warehouse a livello di oggetto (ad esempio, gs://mybucket/object), concedi agli account di servizio Dataproc l'accesso in lettura e scrittura all'oggetto di archiviazione del bucket utilizzando il ruolo roles/storage.objectAdmin. Questo ruolo deve essere impostato a livello di bucket o superiore.

  • Per accedere alla directory del warehouse quando utilizzi una cartella di primo livello, ad esempio gs://mybucket, concedi agli account di servizio Dataproc l'accesso in lettura e scrittura all'oggetto di archiviazione del bucket utilizzando il ruolo roles/storage.storageAdmin.

Se la directory del warehouse Hive non si trova nello stesso progetto del Metastore Dataproc, assicurati che l'agente di servizio Dataproc Metastore disponga dell'autorizzazione per accedere alla directory del warehouse Hive. L'agente di servizio per un progetto Dataproc Metastore è service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com. Concedi all'agente di servizio l'accesso in lettura e scrittura al bucket utilizzando il ruolo roles/storage.objectAdmin.

Trova la directory del warehouse Hive

  1. Apri la pagina Dataproc Metastore.
  2. Fai clic sul nome del tuo servizio.

    Si apre la pagina Dettagli servizio.

  3. Nella tabella di configurazione, trova Override di configurazione di Metastore > hive.metastore.warehouse.dir.

  4. Trova il valore che inizia con gs://.

    Questo valore corrisponde alla posizione della directory del warehouse Hive.

    Valori hive.metastore.warehouse.dir

Modifica la directory del warehouse Hive

Per utilizzare il tuo bucket Cloud Storage con Dataproc Metastore, imposta un override della configurazione di Hive Metastore in modo che punti alla nuova località del bucket.

Se modifichi la directory del warehouse predefinita, segui questi suggerimenti.

  • Non utilizzare la radice del bucket Cloud Storage (gs://mybucket) per archiviare le tabelle Hive.

  • Assicurati che l'account di servizio VM Dataproc Metastore disponga dell'autorizzazione per accedere alla directory del warehouse Hive.

  • Per ottenere risultati ottimali, utilizza i bucket Cloud Storage che si trovano nella stessa regione del servizio Dataproc Metastore. Sebbene Dataproc Metastore consenta i bucket in più regioni, le risorse condivise offrono prestazioni migliori. Ad esempio, un bucket multiregionale dell'UE non funziona bene con un servizio us-central1. L'accesso tra regioni comporta una maggiore latenza, la mancanza di isolamento degli errori a livello di regione e gli addebiti per la larghezza di banda della rete tra regioni.

per modificare la directory del warehouse Hive

  1. Apri la pagina Dataproc Metastore.
  2. Fai clic sul nome del tuo servizio.

    Si apre la pagina Dettagli servizio.

  3. Nella tabella di configurazione, trova la sezione Override di configurazione di Metastore > hive.metastore.warehouse.dir.

  4. Modifica il valore hive.metastore.warehouse.dir nella località del nuovo bucket. Ad esempio, gs://my-bucket/path/to/location.

Elimina il bucket

L'eliminazione del servizio Dataproc Metastore non elimina automaticamente il bucket degli artefatti di Cloud Storage. Il bucket non viene eliminato automaticamente perché potrebbe contenere dati post-servizio utili. Per eliminare il bucket, esegui un'operazione di eliminazione di Cloud Storage.

Passaggi successivi