Questa pagina spiega come utilizzare la funzionalità delle versioni ausiliarie con Dataproc Metastore.
Le versioni ausiliarie consentono di collegare due diverse versioni di un metastore Hive un singolo servizio Dataproc Metastore. Questa configurazione ti consente di supportare più motori di elaborazione dati che devono essere eseguiti su diversi metastore Hive e versioni successive.
Ad esempio, utilizzando le versioni ausiliarie, puoi collegare più cluster Dataproc allo stesso servizio Dataproc Metastore. In questa configurazione, un cluster può eseguire Dataproc versione 2.0 l'altra esegue Dataproc versione 1.5. Il cluster Dataproc 2.0 può connettersi a un endpoint che espone Hive versione 3.1.2, mentre Il cluster Dataproc 1.5 si connette a un endpoint che espone la versione di Hive 2.3.6.
Come funzionano le versioni ausiliarie
Quando attivi le versioni ausiliarie, Dataproc Metastore esposto un endpoint distinto per ogni versione del metastore Hive. Tuttavia, entrambi gli endpoint continuano a condividere lo stesso database di metadati.
Questa funzione non ti consente di utilizzare insiemi diversi con un singolo servizio Dataproc Metastore. Offre invece per estendere e migliorare la compatibilità tra i servizi.
Considerazioni
Generali
Puoi creare una sola versione ausiliaria per ogni Servizio Dataproc Metastore.
La versione ausiliaria deve essere configurata in modo da utilizzare un metastore Hive di livello inferiore rispetto a quella principale.
La versione ausiliaria gestisce un file di log separato rispetto alla versione principale. Per eseguire il debug dei problemi del metastore Hive, puoi utilizzare Cloud Logging.
Supporto delle funzionalità
La versione ausiliaria non supporta le seguenti funzionalità:
- Importa metadati, Esporta metadati
Eseguire il backup da un metastore, ripristinare un metastore da un backup
Le funzionalità relative ai metadati (importazione/esportazione/backup/ripristino) possono essere utilizzata con la versione primaria, poiché i metadati di backend tra vengono condivise.
Alcuni metodi Hive potrebbero non essere compatibili tra la versione ausiliaria e la versione principale. La compatibilità dipende dalle versioni di Hive che stai per le versioni principali e ausiliarie e i metodi che sono compatibili tra le versioni di Hive.
Non tutte le funzioni di un'istanza Dataproc Metastore principale sono supportate dalla versione ausiliaria. Ad esempio, l'inserimento di record in un La tabella transazionale Hive non è supportata con l'interfaccia di un client Hive 2 con una versione ausiliaria 2.3.6. Tuttavia, questa operazione è supportata Interfaccia del client Hive 3 con la versione primaria 3.1.2.
Se una funzionalità di una versione Hive precedente viene ritirata in una versione Hive successiva, la versione ausiliaria inferiore corrispondente non supporterà la funzionalità ritirata. Ad esempio, Hive 2 supporta indici, ma un la versione ausiliaria che esegue Hive 2.3.6 non supporterà l'indice se nella versione precedente esegue Hive 3.1.2.
Creare tabelle transazionali utilizzando la versione ausiliaria o inserire viene impedita la visualizzazione dei dati nelle tabelle transazionali nella versione ausiliaria.
Proprietà condivise tra le versioni
Quando crei una versione ausiliaria, alcune proprietà sono condivisi e rimangono comuni tra la versione ausiliaria e quella principale completamente gestita. Le altre proprietà non sono condivise e sono separate tra le due versioni.
La tabella seguente elenca queste differenze.
Proprietà | Comune | Separa |
---|---|---|
Endpoint | ✓ | |
Override della configurazione Hive* | ✓ | |
Configurazione Kerberos | ✓ | |
Protocollo endpoint (Thrift/gRPC) | ✓ | |
Porta usata | ✓ | |
Bucket Cloud Storage degli artefatti | ✓ | |
Livello | ✓ | |
Periodo di manutenzione | ✓ | |
Canale di rilascio | ✓ | |
Configurazione crittografia | ✓ | |
Tipo di database | ✓ | |
Attiva/disattiva sincronizzazione di Data Catalog | ✓ | |
Metrica di conteggio delle richieste | ✓ | |
Configurazioni di rete | ✓ |
* Gli override della configurazione Hive rimangono separati tra i componenti e la versione principale. Tuttavia, la versione ausiliaria fa riferimento a un elenco unito delle sostituzioni (principale+ausiliaria). In questo caso, la configurazione ausiliaria ha la precedenza sulla configurazione principale.
Prima di iniziare
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per creare un Dataproc Metastore che utilizza versioni ausiliarie, chiedi all'amministratore di concederti i seguenti ruoli IAM sul tuo progetto, in base al principio del privilegio minimo:
-
Concedi il controllo completo delle risorse Dataproc Metastore (
roles/metastore.editor
) -
Concedi l'accesso completo a tutte le risorse Dataproc Metastore, inclusa l'amministrazione dei criteri IAM (
roles/metastore.admin
)
Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene
metastore.services.create
autorizzazione,
che è obbligatorio
creare un Dataproc Metastore che utilizza versioni ausiliarie.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni su ruoli e ruoli Dataproc Metastore specifici autorizzazioni, consulta Gestire l'accesso a Dataproc con IAM.Creare una versione ausiliaria per un nuovo servizio
L'esempio seguente mostra una versione abbreviata dei passaggi da seguire per attivare le versioni ausiliarie. Per istruzioni passo passo complete sul l'intero processo da seguire, vedi Creare un Dataproc Metastore.
Console
Nella console Google Cloud, apri la pagina Dataproc Metastore:
Nella parte superiore della pagina Dataproc Metastore, fai clic sul pulsante Crea .
Viene visualizzata la pagina Crea servizio.
In Configurazione versioni ausiliarie, abilita le versioni ausiliarie.
Fai clic su Aggiungi versione ausiliaria.
Inserisci un nome per la versione ausiliaria.
Seleziona una versione per la versione ausiliaria.
(Facoltativo) Per applicare una mappatura alla versione ausiliaria, fai clic su + Aggiungi sostituzioni.
Fai clic su Fine.
Scegli le configurazioni rimanenti per il servizio, se necessario.
Fai clic su Invia.
Interfaccia a riga di comando gcloud
Per creare un servizio Dataproc Metastore con un servizio ausiliario esegui una delle seguenti
gcloud metastore services create
:gcloud metastore services create SERVICE \ --location=LOCATION \ --auxiliary-versions=AUXILIARY_VERSIONS, ...
SERVICE
: il nome del tuo Servizio Dataproc Metastore.LOCATION
: la regione in cui vuoi creare il servizio Dataproc Metastore.AUXILIARY_VERSIONS
: un elenco separato da virgole delle versioni del metastore Hive da eseguire per la versione ausiliaria. È supportata una sola versione ausiliaria. Utilizza il formato seguente"2.3.6"
.AUXILIARY_VERSIONS_FROM_FILE
: un percorso di un file YAML contenente la configurazione delle versioni ausiliarie. Per ulteriori informazioni e un esempio, consulta la documentazione dell'SDK.
Verifica che la creazione sia andata a buon fine.
curl
Per creare un servizio Dataproc Metastore con una versione ausiliaria,
utilizza il metodo create
.
curl -X POST -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"network":"projects/PROJECT_ID/global/networks/default", "port": 9083, "hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION"} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services?service_id=SERVICE_ID
Sostituisci quanto segue:
SERVICE_ID
: il nome del nuovo servizio Dataproc Metastore.PROJECT_ID
: l'ID progetto Google Cloud che stai la creazione del servizio Dataproc Metastore.LOCATION
: la regione in cui risiede Dataproc Metastore.AUX_VERSIONS
: un elenco separato da virgole delle versioni del metastore Hive da eseguire il deployment. È supportata una sola versione ausiliaria.
Aggiorna una versione ausiliaria per un servizio esistente
Le seguenti istruzioni mostrano come aggiornare un modello esistente Servizio Dataproc Metastore che utilizza versioni ausiliarie.
Quando esegui un'operazione di aggiornamento, puoi completare le seguenti attività:
- Aggiungi una nuova versione ausiliaria.
- Elimina una versione ausiliaria esistente.
Aggiungi o modifica le sostituzioni di una versione ausiliaria esistente.
Console
Nella console Google Cloud, apri la pagina Dataproc Metastore:
Nella pagina Dataproc Metastore, fai clic sul nome del servizio da aggiornare.
Si apre la pagina Dettagli del servizio.
Nella scheda Configurazione, fai clic su Modifica.
Viene visualizzata la pagina Modifica servizio.
Nella sezione Configurazione delle versioni ausiliarie, fai clic sul pulsante di attivazione/disattivazione per attivare o disattivare le versioni ausiliarie.
Puoi completare le seguenti attività:
Per eliminare una versione ausiliaria esistente, fai clic su Elimina.
Per aggiungere una nuova versione ausiliaria, fai clic su Aggiungi versione ausiliaria.
Per applicare una mappatura di override a una versione ausiliaria, fai clic su + Aggiungi override.
Fai clic su Invia.
Interfaccia a riga di comando gcloud
Per aggiornare un servizio Dataproc Metastore che utilizza una versione ausiliaria, Esegui uno dei seguenti comandi
gcloud metastore services update
:gcloud metastore services update SERVICE \ --location=LOCATION \ --add-auxiliary-versions=AUXILIARY_VERSIONS, ...
o
gcloud metastore services update SERVICE \ --location=LOCATION \ --update-auxiliary-versions-from-file=AUXILIARY_VERSIONS_FROM_FILE
Sostituisci quanto segue:
SERVICE
: il nome del tuo Servizio Dataproc Metastore.LOCATION
: la regione in cui Dataproc Metastore.AUXILIARY_VERSIONS
: un elenco separato da virgole di versioni ausiliarie del metastore Hive da eseguire il deployment.AUXILIARY_VERSIONS_FROM_FILE
: un percorso di un file YAML contenente la configurazione delle versioni ausiliarie; per altre informazioni e un esempio, vedi il Documentazione SDK.
Verifica che l'aggiornamento sia andato a buon fine.
curl
Per aggiornare un servizio Dataproc Metastore che utilizza un servizio
utilizza il metodo patch
.
curl -X PATCH -s -i \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-d '{"hive_metastore_config": {"auxiliary_versions": {"aux-version1": {"version": "AUX_VERSION} } } }' \
-H "Content-Type:application/json" \
https://metastore.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/services/SERVICE_ID?update_mask=hive_metastore_config.auxiliary_versions
Sostituisci quanto segue:
SERVICE_ID
: il nome del servizio Dataproc Metastore.PROJECT_ID
: l'ID del progetto Google Cloud che stai creando Cluster di servizio Dataproc Metastore in.LOCATION
: la regione in cui Dataproc Metastore.AUX_VERSIONS
: un elenco separato da virgole di versioni ausiliarie del metastore Hive da eseguire il deployment.