Questa pagina spiega come utilizzare la funzionalità delle versioni ausiliarie con Dataproc Metastore.
Le versioni ausiliarie ti consentono di collegare due versioni diverse di un metastore Hive a un singolo servizio Dataproc Metastore. Questa configurazione ti consente di supportare più motori di elaborazione dei dati che devono essere eseguiti su versioni diverse del metastore Hive.
Ad esempio, utilizzando le versioni ausiliarie, puoi collegare più cluster Dataproc allo stesso servizio Dataproc Metastore. In questa configurazione, un cluster può eseguire la versione 2.0 di Dataproc, mentre l'altro la versione 1.5. Il cluster Dataproc 2.0 può connettersi a un endpoint che espone la versione Hive 3.1.2, mentre il cluster Dataproc 1.5 si connette a un endpoint che espone la versione 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 funzionalità non ti consente di utilizzare diversi set di metadati con un singolo servizio Dataproc Metastore. ma offre un modo per estendere e migliorare la compatibilità tra i tuoi servizi.
Considerazioni
Generali
Puoi creare una sola versione ausiliaria per ogni servizio Dataproc Metastore.
La versione ausiliaria deve essere configurata per utilizzare una versione del metastore Hive precedente a quella della versione 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
Esegui il backup da un metastore, ripristina un metastore da un backup
Le funzionalità relative ai metadati (importazione/esportazione/backup/ripristino) possono essere utilizzate solo con la versione principale, poiché i metadati di backend sono condivisi tra le due versioni.
Alcuni metodi Hive potrebbero non essere compatibili tra la versione ausiliaria e la versione principale. Questa compatibilità dipende dalle versioni di Hive che utilizzi per le versioni principali e ausiliarie e dai metodi 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 una tabella transazionale Hive non è supportato con un client Hive 2 che interagisce con una versione ausiliaria 2.3.6. Tuttavia, questa operazione è supportata con un client Hive 3 che interagisce con la versione principale 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 gli indici, ma una versione ausiliaria che esegue Hive 2.3.6 non supporta l'indice se la versione principale esegue Hive 3.1.2.
La creazione di tabelle transazionali utilizzando la versione ausiliaria o l'inserimento di dati nelle tabelle transazionali nella versione ausiliaria è impedita.
Proprietà condivise tra le versioni
Quando crei una versione ausiliaria, alcune proprietà vengono condivise e rimangono comuni tra la versione ausiliaria e la versione principale. Le altre proprietà non sono condivise e sono separate tra le due versioni.
La tabella seguente elenca queste differenze.
Proprietà | Comune | Separato |
---|---|---|
Endpoint | ✓ | |
Override della configurazione Hive* | ✓ | |
Configurazione Kerberos | ✓ | |
Protocollo endpoint (Thrift/gRPC) | ✓ | |
Porta Thrift | ✓ | |
Bucket Cloud Storage degli elementi | ✓ | |
Livello | ✓ | |
Periodo di manutenzione | ✓ | |
Canale di rilascio | ✓ | |
Configurazione crittografia | ✓ | |
Tipo di database | ✓ | |
Attiva/disattiva sincronizzazione di Data Catalog | ✓ | |
Metrica Conteggio richieste | ✓ | |
Configurazioni di rete | ✓ |
* Le sostituzioni della configurazione di Hive rimangono separate tra la versione ausiliaria e quella 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 le versioni ausiliarie, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto, in base al principio del privilegio minimo:
-
Concedere il controllo completo delle risorse Dataproc Metastore (
roles/metastore.editor
) -
Concedere 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 l'autorizzazione
metastore.services.create
necessaria per
creare un Dataproc Metastore che utilizza le versioni ausiliarie.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, 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 dettagliate passo passo sull'intera procedura da seguire, consulta 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 della versione ausiliaria, attiva 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 una versione ausiliaria, esegui uno dei seguenti comandi
gcloud metastore services create
:gcloud metastore services create SERVICE \ --location=LOCATION \ --auxiliary-versions=AUXILIARY_VERSIONS, ...
SERVICE
: il nome del 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
: il 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 in cui stai creando il 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.
Aggiornare una versione ausiliaria per un servizio esistente
Le seguenti istruzioni mostrano come aggiornare un servizio Dataproc Metastore esistente 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 che vuoi aggiornare.
Viene visualizzata la pagina Dettagli del servizio.
Nella scheda Configurazione, fai clic su Modifica.
Viene visualizzata la pagina Modifica servizio.
Nella sezione Configurazione della versione ausiliaria, 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 dell'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 servizio Dataproc Metastore.LOCATION
: la regione in cui risiede 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 a un file YAML contenente la configurazione delle versioni ausiliarie. Per ulteriori informazioni e un esempio, consulta la documentazione dell'SDK.
Verifica che l'aggiornamento sia andato a buon fine.
curl
Per aggiornare un servizio Dataproc Metastore che utilizza una versione ausiliaria, 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 in cui stai creando il cluster del servizio Dataproc Metastore.LOCATION
: la regione in cui risiede il Dataproc Metastore.AUX_VERSIONS
: un elenco separato da virgole di versioni ausiliarie del metastore Hive da eseguire il deployment.