Dataproc Metastore è un metastore Apache Hive (HMS) completamente gestito, ad alta disponibilità, con riparazione automatica e serverless che funziona su Google Cloud.
Per gestire completamente i metadati, Dataproc Metastore mappa i dati alle tabelle Apache Hive.
Versioni di Apache Hive supportate
Dataproc Metastore supporta solo versioni specifiche di Apache Hive. Per ulteriori informazioni, consulta le norme relative alle versioni di Hive.
In che modo Hive gestisce i metadati
Poiché Dataproc Metastore è un metastore Hive, è importante capire come vengono gestiti i metadati.
Per impostazione predefinita, tutte le applicazioni Hive possono avere tabelle interne gestite o tabelle esterne non gestite. ovvero i metadati archiviati in un Il servizio Dataproc Metastore può esistere in tabelle sia interne che 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 sia i dati delle tabelle.
- Tabelle esterne. Gestisce solo i metadati.
Ad esempio, se elimini una definizione di tabella utilizzando l'istruzione DROP TABLE
Hive SQL:
drop table foo
Tabelle interne. Dataproc Metastore elimina tutti i metadati. Vengono eliminati anche i file associati alla tabella.
Tabelle esterne. Dataproc Metastore elimina solo i metadati. I dati associati alla tabella vengono conservati.
Directory del magazzino Hive
Dataproc Metastore utilizza la directory del warehouse Hive per gestire le tabelle interne. La directory del warehouse Hive è dove si trovano i dati effettivi archiviati.
Quando usi un servizio Dataproc Metastore, il warehouse Hive predefinito è un bucket Cloud Storage. Dataproc Metastore supporta solo l'utilizzo di bucket Cloud Storage per la directory del magazzino. Rispetto a un HMS on-premise, in cui la directory del magazzino Hive solitamente rimanda a una directory locale,
Questo bucket viene creato automaticamente ogni volta che crei un servizio Dataproc Metastore. Questo valore può essere modificato impostando un'override della configurazione del metastore Hive nella proprietà hive.metastore.warehouse.dir
.
Bucket Cloud Storage degli elementi
Il bucket degli elementi archivia gli elementi Dataproc Metastore, come i metadati esportati e i dati delle tabelle interne gestite.
Quando crei un servizio Dataproc Metastore, nel tuo progetto viene creato automaticamente un bucket Cloud Storage. Per impostazione predefinita, sia il bucket degli elementi che la directory del magazzino rimandano allo stesso bucket. Tu non può modificare la località del bucket degli artefatti, ma puoi modificare la posizione della directory del warehouse Hive.
Il bucket degli artefatti si trova nella seguente località:
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 che il bucket è stato creato automaticamente, assicurati che i tuoi account di servizio Dataproc disporre dell'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 Storage del bucket, utilizzando il ruolo
roles/storage.objectAdmin
. Questo ruolo deve essere impostato a livello di bucket o superiore.Per accedere alla directory del magazzino quando utilizzi una cartella di primo livello (ad esempio gs://mybucket), concedi ai service account Dataproc l'accesso in lettura e scrittura all'oggetto di archiviazione del bucket utilizzando il ruolo
roles/storage.storageAdmin
.
Se la directory del magazzino Hive non si trova nello stesso progetto di Dataproc Metastore, assicurati che l'agente di servizio Dataproc Metastore abbia l'autorizzazione per accedere alla directory del magazzino Hive. Il 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
roles/storage.objectAdmin
.
Trovare la directory del magazzino Hive
- Apri la pagina Dataproc Metastore.
Fai clic sul nome del servizio.
Si apre la pagina dei dettagli del servizio.
Nella tabella di configurazione, trova Override configurazione di Metastore > hive.metastore.warehouse.dir.
Trova il valore che inizia con
gs://
.Questo valore è la posizione della directory del magazzino Hive.
Modificare la directory del magazzino Hive
Per utilizzare il tuo bucket Cloud Storage con Dataproc Metastore, imposta un override della configurazione Hive Metastore in modo che punti alla nuova località del bucket.
Se modifichi la directory di 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 della VM Dataproc Metastore abbia l'autorizzazione per accedere alla directory del magazzino Hive.
Per ottenere risultati ottimali, utilizza i bucket Cloud Storage che si trovano nella stessa regione del servizio Dataproc Metastore. Anche se Dataproc Metastore consente bucket tra regioni, le risorse colocate hanno un rendimento migliore. Ad esempio, un bucket UE multiregionale 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 costi per la larghezza di banda della rete tra regioni.
Per modificare la directory del warehouse Hive
- Apri la pagina Dataproc Metastore.
Fai clic sul nome del servizio.
Si apre la pagina dei dettagli del servizio.
Nella tabella di configurazione, individua Override della configurazione di Metastore > hive.metastore.warehouse.dir.
Modifica il valore
hive.metastore.warehouse.dir
nella posizione del nuovo di sincronizzare la directory di una VM con un bucket. Ad esempio,gs://my-bucket/path/to/location
.
Elimina il bucket
L'eliminazione del servizio Dataproc Metastore non comporta automaticamente l'eliminazione del bucket degli elementi Cloud Storage. Il bucket non viene automaticamente è stata eliminata perché potrebbe contenere dati post-servizio utili. Per eliminare il bucket, esegui un'operazione di eliminazione di Cloud Storage.