Versioni ausiliarie

Questa pagina spiega come utilizzare la funzionalità delle versioni ausiliarie con Dataproc Metastore.

Le versioni ausiliarie consentono di connettere due versioni diverse di un metastore Hive a un singolo servizio Dataproc Metastore. Questa configurazione consente di supportare più motori di elaborazione dati che devono essere eseguiti su diverse versioni del metastore Hive.

Ad esempio, utilizzando le versioni ausiliarie, puoi connettere più cluster Dataproc allo stesso servizio Dataproc Metastore. In questa configurazione, un cluster può eseguire Dataproc versione 2.0, mentre l'altro può eseguire 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 Hive versione 2.3.6.

Come funzionano le versioni ausiliarie

Quando abiliti le versioni ausiliarie, Dataproc Metastore mostra un endpoint separato per ogni versione del metastore Hive. Tuttavia, entrambi gli endpoint continuano a condividere lo stesso database di metadati.

Questa funzionalità non consente di utilizzare set di metadati diversi 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 in modo da utilizzare una versione del metastore Hive inferiore rispetto alla versione principale.

  • La versione ausiliaria mantiene 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à:

  • Alcuni metodi Hive potrebbero non essere compatibili tra la versione ausiliaria e quella principale. Questa compatibilità dipende dalle versioni di Hive in uso per le versioni principali e ausiliarie e dai metodi compatibili tra le versioni di Hive.

  • Non tutte le funzioni di un'istanza principale di Dataproc Metastore sono supportate dalla versione ausiliaria. Ad esempio, l'inserimento di record in una tabella transazionale Hive non è supportato con un client Hive 2 che interfaccia con una versione ausiliaria 2.3.6. Tuttavia, questa operazione è supportata con un client Hive 3 che si interfaccia con la versione primaria 3.1.2.

    Se una funzionalità in una versione precedente di Hive viene deprecata in una versione successiva di Hive, la versione ausiliaria inferiore corrispondente non supporterà la funzionalità deprecata. Ad esempio, Hive 2 supporta gli indici, ma una versione ausiliaria che esegue Hive 2.3.6 non supporterà l'indice se la versione principale esegue Hive 3.1.2.

  • Non è possibile creare tabelle transazionali utilizzando la versione ausiliaria o inserire dati nelle tabelle transazionali della versione ausiliaria.

Proprietà condivise tra le versioni

Quando crei una versione ausiliaria, alcune proprietà sono condivise e rimangono comuni tra la versione ausiliaria e la versione principale. Le altre proprietà non vengono condivise e sono separate tra le due versioni.

Queste differenze sono elencate nella tabella seguente.

Proprietà Comune Separa
Endpoint
Override della configurazione Hive*
Configurazione Kerberos
Protocollo endpoint (Thrift/gRPC)
Porta tariffa
Bucket Cloud Storage di Artifacts
Livello
Periodo di manutenzione
Canale di rilascio
Configurazione crittografia
Tipo di database
Attivazione/disattivazione della sincronizzazione di Data Catalog
Metrica di conteggio delle richieste
Configurazioni di rete

* Gli override della configurazione Hive rimangono separati tra la versione ausiliaria e quella principale. Tuttavia, la versione ausiliaria fa riferimento a un elenco unito di override (primario + ausiliario). 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 ruoli IAM seguenti sul tuo progetto, in base al principio del privilegio minimo:

Per saperne di più sulla concessione dei ruoli, consulta Gestire l'accesso.

Questo ruolo predefinito contiene l'autorizzazione metastore.services.create, necessaria per creare un Dataproc Metastore che utilizza versioni ausiliarie.

Potresti anche essere in grado di ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.

Per ulteriori informazioni su ruoli e autorizzazioni specifici per Dataproc Metastore, consulta Gestione dell'accesso a Dataproc con IAM.

Crea una versione ausiliaria per un nuovo servizio

L'esempio seguente mostra una versione abbreviata dei passaggi da seguire per abilitare le versioni ausiliarie. Per istruzioni dettagliate sull'intero processo da seguire, consulta Creare un Dataproc Metastore.

Console

  1. Nella console Google Cloud, apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore

  2. Nella parte superiore della pagina Dataproc Metastore, fai clic sul pulsante Crea.

    Viene visualizzata la pagina Crea servizio.

  3. In Configurazione versione ausiliaria, abilita le versioni ausiliarie.

  4. Fai clic su Add Auxiliary Version (Aggiungi versione ausiliaria).

    1. Inserisci un nome per la versione ausiliaria.

    2. Seleziona una versione per la tua versione ausiliaria.

    3. (Facoltativo) Per applicare una mappatura alla versione ausiliaria, fai clic su + Aggiungi override.

    4. Fai clic su Fine.

  5. Scegli le configurazioni rimanenti per il tuo servizio in base alle esigenze.

  6. Fai clic su Invia.

Interfaccia a riga di comando gcloud

  1. 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 di cui eseguire il deployment per la versione ausiliaria. È supportata una sola versione ausiliaria. Utilizza il seguente formato: "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.
  2. Verifica che la creazione sia riuscita.

arricciare

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 del progetto Google Cloud in cui stai creando il servizio Dataproc Metastore.
  • LOCATION: la regione in cui si trova Dataproc Metastore.
  • AUX_VERSIONS: un elenco separato da virgole di versioni del metastore Hive di cui eseguire il deployment. È supportata una sola versione ausiliaria.

Aggiorna 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 gli override di una versione ausiliaria esistente.

Console

  1. Nella console Google Cloud, apri la pagina Dataproc Metastore:

    Apri Dataproc Metastore

  2. Nella pagina Dataproc Metastore, fai clic sul nome del servizio che vuoi aggiornare.

    Viene visualizzata la pagina Dettagli servizio.

  3. Nella scheda Configurazione, fai clic su Modifica.

    Viene visualizzata la pagina Modifica servizio.

  4. Nella sezione Configurazione versione ausiliaria, fai clic sul pulsante di attivazione/disattivazione per abilitare o disabilitare le versioni ausiliarie.

    Puoi completare le seguenti attività:

    1. Per eliminare una versione ausiliaria esistente, fai clic su Elimina.

    2. Per aggiungere una nuova versione ausiliaria, fai clic su Aggiungi versione ausiliaria.

    3. Per applicare una mappatura di override a una versione ausiliaria, fai clic su + Aggiungi override.

  5. Fai clic su Invia.

Interfaccia a riga di comando gcloud

  1. 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 si trova Dataproc Metastore.
    • AUXILIARY_VERSIONS: un elenco separato da virgole di versioni ausiliarie del metastore Hive di cui eseguire il deployment.
    • AUXILIARY_VERSIONS_FROM_FILE: un percorso di un file YAML contenente la configurazione delle versioni ausiliarie. Per saperne di più e per un esempio, consulta la documentazione dell'SDK.
  2. Verifica che l'aggiornamento sia riuscito.

arricciare

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 di servizio Dataproc Metastore.
  • LOCATION: la regione in cui si trova Dataproc Metastore.
  • AUX_VERSIONS: un elenco separato da virgole di versioni ausiliarie del metastore Hive di cui eseguire il deployment.

Passaggi successivi