Configurare un servizio Dataproc Metastore su più regioni

Questa pagina mostra come configurare un servizio Dataproc Metastore multiregionale. Per saperne di più sul funzionamento dei servizi Dataproc Metastore multiregionali, consulta Regioni Dataproc Metastore.

Prima di iniziare

Ruoli obbligatori

Per ottenere l'autorizzazione necessaria per creare un servizio Dataproc Metastore multiregionale, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto, in base al principio del privilegio minimo:

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 servizio Dataproc Metastore multiregionale.

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 con IAM.

Informazioni sui servizi Dataproc Metastore su più regioni

I servizi Dataproc Metastore multiregionali archiviano i dati in due regioni diverse e utilizzano le due regioni per eseguire i carichi di lavoro. Ad esempio, la località a più regioni nam7 contiene le regioni us-central1 e us-east4.

  • Un servizio Dataproc Metastore multi-regionale replica i metadati su due regioni ed espone gli endpoint pertinenti per accedere al metastore Hive. Per gRPC viene esposto un endpoint per regione. Per Thrift, viene esposto un endpoint per sottorete.

  • Un servizio Dataproc Metastore multiregionale fornisce una configurazione del cluster ad alta disponibilità (HA) attivo-attivo. Questa configurazione consente ai carichi di lavoro di accedere a entrambe le regioni durante l'esecuzione dei job. Fornisce inoltre un meccanismo di failover per il servizio. Ad esempio, se l'endpoint regionale principale non è disponibile, i tuoi workload vengono indirizzati automaticamente alla regione secondaria. In questo modo si evitano interruzioni dei job Dataproc.

Considerazioni

Le seguenti considerazioni si applicano ai servizi Dataproc Metastore su più regioni.

Crea un servizio Dataproc Metastore multiregionale

Scegli una delle seguenti schede per scoprire come creare un servizio multiregionale utilizzando il protocollo di endpoint Thrift o gRPC con un servizio Dataproc Metastore 2.

gRPC

Quando crei un servizio multiregionale che utilizza il protocollo dell'endpoint gRPC, non devi impostare impostazioni di rete specifiche. Il protocollo gRPC gestisce il routing di rete per te.

Console

  1. Nella console Google Cloud, vai alla pagina Dataproc Metastore.

    Vai a Dataproc Metastore

  2. Nella barra di navigazione, fai clic su +Crea.

    Viene visualizzata la finestra di dialogo Crea servizio Metastore.

  3. Seleziona Dataproc Metastore 2.

  4. Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.

  5. Per il Protocollo endpoint, seleziona gRPC.

  6. Per creare e avviare il servizio, fai clic su Invia.

    Il nuovo servizio metastore viene visualizzato nella pagina Dataproc Metastore. Lo stato visualizzato è Creazione in corso finché il servizio non è pronto per essere utilizzato. Quando è tutto pronto, lo stato diventa Attivo. Il provisioning del servizio potrebbe richiedere alcuni minuti.

Interfaccia a riga di comando gcloud

Per creare un servizio Dataproc Metastore multiregionale, esegui il seguente comando gcloud metastore services create. Questo comando crea Dataproc Metastore versione 3.1.2.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=grpc

Sostituisci quanto segue:

  • SERVICE: il nome del servizio Dataproc Metastore.
  • MULTI_REGION: la regione multipla in cui stai creando il servizio Dataproc Metastore.
  • INSTANCE_SIZE: le dimensioni dell'istanza del tuo Dataproc Metastore su più regioni. Ad esempio, small, medium o large. Se specifichi un valore per INSTANCE_SIZE, non specificare un valore per SCALING_FACTOR.
  • SCALING_FACTOR: il fattore di scalabilità del servizio Dataproc Metastore. Ad esempio: 0.1. Se specifichi un valore per SCALING_FACTOR, non specificare un valore per INSTANCE_SIZE.

Risparmio

Quando crei un servizio multiregionale che utilizza il protocollo dell'endpoint Thrift, devi impostare le impostazioni della sottorete appropriate. In questo caso, per ogni rete VPC in uso devi fornire almeno una subnet da ogni regione.

Ad esempio, per creare la regione multipla nam7, devi fornire sia le regioni us-central1 sia us-east4.

Console

  1. Nella console Google Cloud, vai alla pagina Dataproc Metastore.

    Vai a Dataproc Metastore

  2. Nella barra di navigazione, fai clic su +Crea.

    Viene visualizzata la finestra di dialogo Crea servizio Metastore.

  3. Seleziona Dataproc Metastore 2.

  4. Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.

    Per ulteriori informazioni, consulta i piani tariffari e le configurazioni di scalabilità.

  5. Nel campo Nome servizio, inserisci un nome univoco per il servizio.

    Per informazioni sulle convenzioni di denominazione, consulta Convenzione di denominazione delle risorse.

  6. Per il Protocollo endpoint, seleziona Thrift.

  7. In Configurazione di rete, fornisci le subnet che formano la configurazione multiregionale scelta.

  8. Per le restanti opzioni di configurazione del servizio, utilizza i valori predefiniti forniti.

  9. Per creare e avviare il servizio, fai clic su Invia.

    Il nuovo servizio metastore viene visualizzato nella pagina Dataproc Metastore. Lo stato visualizzato è Creazione in corso finché il servizio non è pronto per essere utilizzato. Quando è tutto pronto, lo stato diventa Attivo. Il provisioning del servizio potrebbe richiedere alcuni minuti.

Interfaccia a riga di comando gcloud

Per creare un servizio multiregionale Dataproc Metastore, esegui il seguente comando gcloud metastore services create. Questo comando crea Dataproc Metastore versione 3.1.2.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
  --consumer-subnetworks="projects/PROJECT_ID/regions/LOCATION1/subnetworks/SUBNET1,projects/PROJECT_ID/regions/LOCATION2/subnetworks/SUBNET2" \
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=thrift

In alternativa, puoi memorizzare le impostazioni di rete in un file, come mostrato nel seguente comando.

gcloud metastore services create SERVICE \
  --location=MULTI_REGION \
  --network-config-from-file=NETWORK_CONFIG_FROM_FILE
{ --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \
  --endpoint-protocol=thrift

Sostituisci quanto segue:

  • SERVICE: il nome del servizio Dataproc Metastore.
  • MULTI_REGION: la regione multipla in cui stai creando il servizio Dataproc Metastore.
  • PROJECT_ID: l'ID progetto Google Cloud in cui stai creando il servizio Dataproc Metastore.
  • SUBNET1,SUBNET2: un elenco di reti sottostanti che formano una configurazione multiregionale. Puoi utilizzare l'ID, l'URL completo o il nome relativo della subnet. Puoi specificare fino a sei sottoreti.
  • LOCATION1,LOCATION2: un elenco di località che formano una configurazione multiregionale. Puoi utilizzare l'ID della stazione di ricarica. Ad esempio, per una località a più regioni nam7, utilizza us-central1 e us-east4.
  • NETWORK_CONFIG_FROM_FILE: il percorso di un file YAML contenente la configurazione di rete.
  • INSTANCE_SIZE: le dimensioni dell'istanza del tuo Dataproc Metastore su più regioni. Ad esempio, small, medium o large. Se specifichi un valore per INSTANCE_SIZE, non specificare un valore per SCALING_FACTOR.
  • SCALING_FACTOR: il fattore di scalabilità del servizio Dataproc Metastore. Ad esempio: 0.1. Se specifichi un valore per SCALING_FACTOR, non specificare un valore per INSTANCE_SIZE.

REST

Per scoprire come creare un servizio Dataproc Metastore multiregionale, segui le istruzioni per creare un servizio utilizzando Google APIs Explorer.

Per configurare un servizio multiregionale, fornisci le seguenti informazioni negli oggetti Network Config.

  "network_config": {
    "consumers": [
        {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET1"},
        {"subnetwork": "projects/PROJECT_ID/regions/LOCATION/subnetworks/SUBNET2"}
    ],
    "scaling_config": {
    "scaling_factor": SCALING_FACTOR
    }
  }

Sostituisci quanto segue:

  • PROJECT_ID: l'ID progetto Google Cloud del progetto che contiene il servizio Dataproc Metastore.
  • LOCATION: la regione Google Cloud in cui risiede il servizio Dataproc Metastore.
  • SUBNET1,SUBNET2: un elenco di sottoreti che formano una configurazione multiregionale. Puoi utilizzare l'ID, l'URL completo o il nome relativo della subnet. Puoi specificare fino a cinque sottoreti.
  • SCALING_FACTOR: il fattore di scalabilità che vuoi utilizzare per il servizio.

Connetti Dataproc Metastore a un cluster Dataproc

Scegli una delle seguenti schede per scoprire come collegare un servizio Dataproc Metastore multiregionale da un cluster Dataproc.

gRPC

Per collegare un cluster Dataproc, scegli la scheda corrispondente alla versione di Dataproc Metastore in uso.

Dataproc Metastore 3.1.2

  1. Crea le seguenti variabili per il cluster Dataproc:

    CLUSTER_NAME=CLUSTER_NAME
    PROJECT_ID=PROJECT_ID
    MULTI_REGION=MULTI_REGION
    DATAPROC_IMAGE_VERSION=DATAPROC_IMAGE_VERSION
    PROJECT=PROJECT
    SERVICE_ID=SERVICE_ID

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster Dataproc.
    • PROJECT_ID: il progetto Google Cloud che contiene il tuo cluster Dataproc. Assicurati che la sottorete in uso abbia le autorizzazioni appropriate per accedere a questo progetto.
    • MULTI_REGION: la regione multipla Google Cloud in cui vuoi creare il tuo cluster Dataproc.
    • DATAPROC_IMAGE_VERSION: la versione dell'immagine Dataproc che utilizzi con il servizio Dataproc Metastore. Devi utilizzare una versione dell'immagine pari o superiore a 2.0.
    • PROJECT: il progetto che contiene il servizio Dataproc Metastore.
    • SERVICE_ID: l'ID servizio del servizio Dataproc Metastore.
  2. Per creare il cluster, esegui il seguente comando gcloud dataproc clusters create. Il valore --enable-kerberos è facoltativo. Includi questa opzione solo se utilizzi Kerberos con il tuo cluster.

    gcloud dataproc clusters create ${CLUSTER_NAME} \
     --project ${PROJECT_ID} \
     --region ${MULTI_REGION} \
     --image-version ${DATAPROC_IMAGE_VERSION} \
     --scopes "https://www.googleapis.com/auth/cloud-platform" \
     --dataproc-metastore projects/${PROJECT}/locations/${MULTI_REGION}/services/${SERVICE_ID} \
    [ --enable-kerberos ]

Dataproc Metastore 2.3.6

  1. Crea le seguenti variabili per il servizio Dataproc Metastore:

    METASTORE_PROJECT=METASTORE_PROJECT
    METASTORE_ID=METASTORE_ID
    MULTI_REGION=MULTI_REGION
    SUBNET=SUBNET

    Sostituisci quanto segue:

    • METASTORE_PROJECT: il progetto Google Cloud che contiene il servizio Dataproc Metastore.
    • METASTORE_ID: l'ID servizio del servizio Dataproc Metastore.
    • MULTI_REGION: la posizione multi-regione che vuoi utilizzare per il servizio Dataproc Metastore.
    • SUBNET: una delle sottoreti che utilizzi per il servizio Dataproc Metastore. In alternativa, qualsiasi subnet nella rete VPC principale delle subnet utilizzate per il servizio.
  2. Crea le seguenti variabili per il cluster Dataproc:

    CLUSTER_NAME=CLUSTER_NAME
    DATAPROC_PROJECT=DATAPROC_PROJECT
    DATAPROC_REGION=DATAPROC_REGION
    HIVE_VERSION=HIVE_VERSION
    IMAGE_VERSION=r>IMAGE_VERSION

    Sostituisci quanto segue:

    • CLUSTER_NAME: il nome del tuo cluster Dataproc.
    • DATAPROC_PROJECT: il progetto Google Cloud che contiene il tuo cluster Dataproc. Assicurati che la sottorete in uso abbia le autorizzazioni appropriate per accedere a questo progetto.
    • DATAPROC_REGION: la regione Google Cloud in cui vuoi creare il tuo cluster Dataproc.
    • HIVE_VERSION: la versione di Hive utilizzata dal servizio Dataproc Metastore.
    • IMAGE_VERSION: la versione dell'immagine Dataproc che utilizzi con il servizio Dataproc Metastore.
      • Per Hive Metastore versione 2.0, utilizza la versione dell'immagine 1.5.
      • Per Hive Metastore versione 3.1.2, utilizza la versione dell'immagine 2.0.
  3. Recupera la directory del magazzino del tuo servizio Dataproc Metastore e memorizzala in una variabile.

    WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
  4. Crea un cluster Dataproc configurato con un Dataproc Metastore multiregionale.

    gcloud dataproc clusters create ${CLUSTER_NAME} \
        --project "${DATAPROC_PROJECT}" \
        --region ${DATAPROC_REGION} \
        --scopes "https://www.googleapis.com/auth/cloud-platform" \
        --subnet "${SUBNET}" \
        --optional-components=DOCKER \
        --image-version ${IMAGE_VERSION} \
        --metadata "hive-version=${HIVE_VERSION},dpms-name=${DPMS_NAME}" \
        --properties "hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=${WAREHOUSE_DIR}" \
        --initialization-actions gs://metastore-init-actions/mr-metastore-grpc-proxy/metastore-grpc-proxy.sh

Risparmio

Opzione 1: modifica il file hive-site.xml

  1. Trova l'URI dell'endpoint e la directory del magazzino del servizio Dataproc Metastore. Puoi scegliere uno degli endpoint esposti.
  2. Nella console Google Cloud, vai alla pagina Istanze VM.
  3. Nell'elenco delle istanze della macchina virtuale, fai clic su SSH nella riga del node principale Dataproc (.*-m).

    Viene aperta una finestra del browser nella home directory del nodo.

  4. Apri il file /etc/hive/conf/hive-site.xml.

    sudo vim /etc/hive/conf/hive-site.xml
    

    Viene visualizzato un output simile al seguente:

    <property>
        <name>hive.metastore.uris</name>
        <value>ENDPOINT_URI</value>
    </property>
    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>WAREHOUSE_DIR</value>
    </property>
    

    Sostituisci quanto segue:

  5. Riavvia HiveServer2:

    sudo systemctl restart hive-server2.service
    

Opzione 2: utilizza gcloud CLI

Esegui il seguente comando gcloud dataproc clusters create gcloud CLI.

  1. Trova l'URI dell'endpoint e la directory del magazzino del servizio Dataproc Metastore. Puoi scegliere uno degli endpoint esposti.
gcloud dataproc clusters create CLUSTER_NAME \
    --network NETWORK \
    --project PROJECT_ID \
    --scopes "https://www.googleapis.com/auth/cloud-platform" \
    --image-version IMAGE_VERSION \
    --properties "hive:hive.metastore.uris=ENDPOINT,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"

Sostituisci quanto segue:

  • CLUSTER_NAME: il nome del tuo cluster Dataproc.
  • NETWORK: il progetto Google Cloud che contiene il tuo cluster Dataproc. Assicurati che la sottorete in uso abbia le autorizzazioni appropriate per accedere a questo progetto.
  • PROJECT_ID: la versione di Hive utilizzata dal servizio Dataproc Metastore.
  • IMAGE_VERSION: la versione dell'immagine Dataproc che utilizzi con il servizio Dataproc Metastore.
    • Per Hive Metastore versione 2.0, utilizza la versione dell'immagine 1.5.
    • Per Hive Metastore versione 3.1.2, utilizza la versione dell'immagine 2.0.
  • ENDPOINT: l'endpoint Thrift utilizzato da Dataproc Metastore.
  • WAREHOUSE_DIR: la directory del magazzino del tuo Dataproc Metastore.

Configurazioni personalizzate delle regioni

Puoi configurare i servizi Dataproc Metastore in modo da utilizzare una configurazione della regione personalizzata.

Una configurazione della regione personalizzata consente al servizio di eseguire carichi di lavoro da due regioni distinte. Ciò fornisce ridondanza tra le regioni, il che significa che i carichi di lavoro possono accedere a entrambe le regioni durante l'esecuzione dei job. Fornisce inoltre un meccanismo di failover per il servizio. Ad esempio, se uno degli endpoint regionali non è disponibile, i workload vengono indirizzati automaticamente all'altra regione. In questo modo, contribuisci a evitare interruzioni dei carichi di lavoro e dei job.

Le configurazioni delle regioni personalizzate ti consentono inoltre di controllare dove archiviare i metadati e dove esporre gli endpoint Hive Metastore. In questo modo, puoi migliorare le prestazioni durante l'elaborazione dei carichi di lavoro.

Considerazioni

Le seguenti considerazioni si applicano ai servizi Dataproc Metastore configurati con una configurazione della regione personalizzata:

  • Limitazioni per regione/accoppiamento: non tutte le regioni e le combinazioni sono consentite.
  • Limitazioni di sola lettura: le regioni di sola lettura non possono accettare operazioni di scrittura. Se viene scelta una regione di sola lettura e la regione di lettura/scrittura non è raggiungibile, la scrittura non viene elaborata.
  • Immutabilità della configurazione: una volta impostata, la configurazione della regione non può essere modificata.
  • Solo per lo stack US: le regioni doppie personalizzate supportano solo lo stack US e sono limitate ai confini degli Stati Uniti.

Crea un servizio di regione personalizzato

Per configurare una regione personalizzata, scegli due regioni adiacenti quando crei il servizio. Questa combinazione può essere composta da due regioni di lettura/scrittura o da una regione di lettura/scrittura e una di sola lettura.

Console

  1. Nella console Google Cloud, vai alla pagina Dataproc Metastore.

    Vai a Dataproc Metastore

  2. Nella barra di navigazione, fai clic su +Crea.

    Viene visualizzata la finestra di dialogo Crea servizio Metastore.

  3. Seleziona Dataproc Metastore 2.

  4. Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.

  5. Nel campo Nome servizio, inserisci un nome univoco per il servizio.

  6. Per Località dei dati, seleziona US (continent) (Stati Uniti (continente)).

    Viene visualizzata la sezione Regioni personalizzate.

  7. In Regioni personalizzate, seleziona una regione di lettura/scrittura e una regione di sola lettura.

  8. Per le restanti opzioni di configurazione del servizio, utilizza i valori predefiniti forniti.

  9. Per creare e avviare il servizio, fai clic su Invia.

    Il nuovo servizio metastore viene visualizzato nella pagina Dataproc Metastore. Lo stato visualizzato è Creazione in corso finché il servizio non è pronto per essere utilizzato. Quando è tutto pronto, lo stato diventa Attivo. Il provisioning del servizio potrebbe richiedere alcuni minuti.

gcloud

Per creare un servizio Dataproc Metastore con regioni personalizzate, esegui il seguente comando gcloud beta metastore services create gcloud CLI.

gcloud beta metastore services create SERVICE \
  --read-write-regions

Sostituisci quanto segue:

  • SERVICE: il nome del servizio Dataproc Metastore.
  • READ_WRITE_REGIONS: un'area di scrittura e lettura supportata che fa parte della configurazione della regione personalizzata.
  • READ_ONLY_REGIONS: un'area di sola lettura supportata che fa parte della configurazione delle regioni personalizzate.

Passaggi successivi