Questa pagina mostra come configurare un servizio Dataproc Metastore multiregionale. Per ulteriori informazioni su come funzionano i servizi Dataproc Metastore multiregionali, consulta Regioni di Dataproc Metastore.
Prima di iniziare
- Abilita Dataproc Metastore nel progetto.
- Comprendi i requisiti di networking specifici del tuo progetto.
- Scopri le regioni di Dataproc Metastore e scegline una appropriata.
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per creare un servizio Dataproc Metastore multiregionale, chiedi all'amministratore di concederti i ruoli IAM seguenti per il 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.
Questo ruolo predefinito contiene l'autorizzazione metastore.services.create
, necessaria per creare un servizio Dataproc Metastore multiregionale.
Potresti anche essere in grado di ottenere questa autorizzazione con i ruoli personalizzati o altri ruoli predefiniti.
Per ulteriori informazioni su ruoli e autorizzazioni specifici di Dataproc Metastore, vedi Gestire l'accesso con IAM.Informazioni sui servizi Dataproc Metastore multiregionali
I servizi Dataproc Metastore su più regioni archiviano i dati in due
regioni diverse e le utilizzano 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 su più regioni replica i metadati in due regioni ed espone gli endpoint pertinenti per accedere a Hive Metastore. Per gRPC, è esposto un endpoint per regione. Per Thrift, è esposto un endpoint per subnet.
Un servizio Dataproc Metastore su più regioni fornisce una configurazione del cluster ad alta disponibilità attivo-attivo. Questa configurazione significa che i carichi di lavoro possono accedere a entrambe le regioni durante l'esecuzione di job. Fornisce inoltre un meccanismo di failover per il servizio. Ad esempio, se l'endpoint regionale principale non funziona, i carichi di lavoro vengono instradati automaticamente alla regione secondaria. In questo modo, puoi evitare interruzioni dei job Dataproc.
Considerazioni
Le considerazioni seguenti si applicano ai servizi Dataproc Metastore in più regioni.
I servizi per più regioni supportano solo il tipo di database Spanner. Consulta l'elenco delle funzionalità supportate prima di creare il tuo servizio multiregionale.
I servizi per più regioni supportano solo le configurazioni di Dataproc Metastore 2.
I servizi in più regioni creano bucket di artefatti in una località con più regioni di Cloud Storage. Ad esempio, i bucket
Nam7
vengono creati nella località a più regioniUS
.
Crea un servizio Dataproc Metastore su più regioni
Scegli una delle seguenti schede per scoprire come creare un servizio per più regioni utilizzando il protocollo dell'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 configurare impostazioni di rete specifiche. Il protocollo gRPC gestisce il routing di rete al posto tuo.
Console
Nella console Google Cloud, vai alla pagina Dataproc Metastore.
Nella barra di navigazione, fai clic su +Crea.
Viene visualizzata la finestra di dialogo Crea servizio Metastore.
Seleziona Dataproc Metastore 2.
Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Doppia regione
Per Protocollo endpoint, seleziona gRPC*.
Per creare e avviare il servizio, fai clic su Invia.
Il nuovo servizio metastore viene visualizzato nella pagina Dataproc Metastore. Lo stato visualizzato sarà Creazione in corso finché il servizio non sarà pronto per l'uso. Quando è pronto, lo stato diventa Attivo. Il provisioning del servizio potrebbe richiedere alcuni minuti.
Interfaccia a riga di comando gcloud
Per creare un servizio multiregionale di Dataproc Metastore, esegui questo 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 tuo servizio Dataproc Metastore.MULTI_REGION
: più regioni in cui stai creando il servizio Dataproc Metastore.INSTANCE_SIZE
: le dimensioni dell'istanza del tuo Dataproc Metastore multiregionale. Ad esempio,small
,medium
olarge
. Se specifichi un valore perINSTANCE_SIZE
, non specificare un valore perSCALING_FACTOR
.SCALING_FACTOR
: il fattore di scalabilità del servizio Dataproc Metastore. Ad esempio:0.1
. Se specifichi un valore perSCALING_FACTOR
, non specificare un valore perINSTANCE_SIZE
.
Usato
Quando crei un servizio multiregionale che utilizza il protocollo degli endpoint Thrift, devi configurare le impostazioni della subnet appropriate. In questo caso, per ogni rete VPC in uso, devi fornire almeno una subnet per ogni regione.
Ad esempio, per creare la località multiregionale nam7
, devi fornire entrambe le regioni us-central1
e us-east4
.
Console
Nella console Google Cloud, vai alla pagina Dataproc Metastore.
Nella barra di navigazione, fai clic su +Crea.
Viene visualizzata la finestra di dialogo Crea servizio Metastore.
Seleziona Dataproc Metastore 2.
Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Doppia regione.
Per ulteriori informazioni, consulta la sezione Piani tariffari e configurazioni di scalabilità.
Nel campo Nome servizio, inserisci un nome univoco per il servizio.
Per informazioni sulle convenzioni di denominazione, consulta Convenzione di denominazione delle risorse.
Per Protocollo endpoint, seleziona Thrift.
In Configurazione rete, fornisci le subnet che formano la configurazione multiregionale che hai scelto.
Per le restanti opzioni di configurazione del servizio, utilizza i valori predefiniti.
Per creare e avviare il servizio, fai clic su Invia.
Il nuovo servizio metastore viene visualizzato nella pagina Dataproc Metastore. Lo stato visualizzato sarà Creazione in corso finché il servizio non sarà pronto per l'uso. Quando è pronto, lo stato diventa Attivo. Il provisioning del servizio potrebbe richiedere alcuni minuti.
Interfaccia a riga di comando gcloud
Per creare un servizio multiregionale di Dataproc Metastore, esegui questo 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 archiviare le impostazioni di rete in un file, come mostrato nel comando seguente.
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 tuo servizio Dataproc Metastore.MULTI_REGION
: località multiregionale 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 subnet che formano una configurazione per più regioni. Puoi utilizzare l'ID, l'URL completo o il nome relativo della subnet. Puoi specificare fino a sei subnet.LOCATION1
,LOCATION2
: un elenco di località che formano una configurazione per più regioni. Puoi utilizzare l'ID della posizione. Ad esempio, per una località multiregionalenam7
, utilizzius-central1
eus-east4
.NETWORK_CONFIG_FROM_FILE
: il percorso di un file YAML contenente la tua configurazione di rete.INSTANCE_SIZE
: le dimensioni dell'istanza del tuo Dataproc Metastore multiregionale. Ad esempio,small
,medium
olarge
. Se specifichi un valore perINSTANCE_SIZE
, non specificare un valore perSCALING_FACTOR
.SCALING_FACTOR
: il fattore di scalabilità del servizio Dataproc Metastore. Ad esempio:0.1
. Se specifichi un valore perSCALING_FACTOR
, non specificare un valore perINSTANCE_SIZE
.
REST
Per scoprire come creare un servizio Dataproc Metastore multiregionale, segui le istruzioni per creare un servizio utilizzando Explorer API di Google.
Per configurare un servizio per più regioni, 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 del progetto Google Cloud che contiene il servizio Dataproc Metastore.LOCATION
: la regione Google Cloud in cui risiede il tuo servizio Dataproc Metastore.SUBNET1
,SUBNET2
: un elenco di subnet che formano una configurazione per più regioni. Puoi utilizzare l'ID, l'URL completo o il nome relativo della subnet. Puoi specificare fino a cinque subnet.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 connettere un servizio Dataproc Metastore su più regioni da un cluster Dataproc.
gRPC
Per connettere un cluster Dataproc, scegli la scheda corrispondente alla versione di Dataproc Metastore in uso.
Dataproc Metastore 3.1.2
Crea le seguenti variabili per il tuo 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 cluster Dataproc. Assicurati che la subnet che stai utilizzando disponga delle autorizzazioni appropriate per accedere a questo progetto.MULTI_REGION
: la località multiregionale di Google Cloud in cui vuoi creare il cluster Dataproc.DATAPROC_IMAGE_VERSION
: la versione dell'immagine Dataproc che utilizzi con il servizio Dataproc Metastore. Devi utilizzare una versione immagine di2.0
o successiva.PROJECT
: il progetto che contiene il tuo servizio Dataproc Metastore.SERVICE_ID
: l'ID servizio del tuo servizio Dataproc Metastore.
Per creare il cluster, esegui il comando
gcloud dataproc clusters create
riportato di seguito. Il campo--enable-kerberos
è facoltativo. Includi questa opzione solo se utilizzi kerbero 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
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 tuo servizio Dataproc Metastore.MULTI_REGION
: località multiregionale che vuoi utilizzare per il servizio Dataproc Metastore.SUBNET
: una delle subnet che utilizzi per il servizio Dataproc Metastore. o qualsiasi subnet nella rete VPC principale delle subnet utilizzate per il tuo servizio.
Crea le seguenti variabili per il tuo 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 cluster Dataproc. Assicurati che la subnet che stai utilizzando disponga delle autorizzazioni appropriate per accedere a questo progetto.DATAPROC_REGION
: la regione Google Cloud in cui vuoi creare il cluster Dataproc.HIVE_VERSION
: la versione di Hive utilizzata dal servizio Dataproc Metastore.IMAGE_VERSION
: la versione immagine di Dataproc che utilizzi con il tuo servizio Dataproc Metastore.- Per Hive Metastore versione 2.0, utilizza la versione immagine
1.5
. - Per Hive Metastore versione 3.1.2, utilizza la versione immagine
2.0
.
- Per Hive Metastore versione 2.0, utilizza la versione immagine
Recupera la directory del warehouse del servizio Dataproc Metastore e archiviala 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])")
Creare un cluster Dataproc configurato con Dataproc Metastore su più regioni.
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
Usato
Opzione 1: modifica il file hive-site.xml
- Trova l'URI endpoint e la directory del warehouse del servizio Dataproc Metastore. Puoi scegliere uno qualsiasi degli endpoint esposti.
- Nella console Google Cloud, vai alla pagina Istanze VM.
Nell'elenco delle istanze di macchine virtuali, fai clic su SSH nella riga del nodo principale di Dataproc (
.*-m
).Nella tua directory home sul nodo si apre una finestra del browser.
Apri il file
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Verrà 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:
ENDPOINT_URI
: l'URI endpoint del servizio Dataproc Metastore.WAREHOUSE_DIR
: il percorso della directory del warehouse Hive.
Riavvia HiveServer2:
sudo systemctl restart hive-server2.service
Opzione 2: utilizza gcloud CLI
Esegui il seguente comando gcloud dataproc clusters create
dell'interfaccia a riga di comando gcloud.
- Trova l'URI endpoint e la directory del warehouse del servizio Dataproc Metastore. Puoi scegliere uno qualsiasi 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 cluster Dataproc. Assicurati che la subnet che stai utilizzando disponga delle autorizzazioni appropriate per accedere a questo progetto.PROJECT_ID
: la versione di Hive utilizzata dal servizio Dataproc Metastore.IMAGE_VERSION
: la versione immagine di Dataproc che utilizzi con il tuo servizio Dataproc Metastore.- Per Hive Metastore versione 2.0, utilizza la versione immagine
1.5
. - Per Hive Metastore versione 3.1.2, utilizza la versione immagine
2.0
.
- Per Hive Metastore versione 2.0, utilizza la versione immagine
ENDPOINT
: l'endpoint Thrift utilizzato da Dataproc Metastore.WAREHOUSE_DIR
: la directory del warehouse del tuo Metastore Dataproc.