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
- Attiva Dataproc Metastore nel tuo progetto.
- Informazioni sui requisiti di rete specifiche del tuo progetto.
- Scopri di più sulle regioni di Dataproc Metastore e scegli una regione appropriata.
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:
-
Concede 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 l'autorizzazione
metastore.services.create
necessaria per
creare un servizio Dataproc Metastore multiregionale.
Potresti anche riuscire a ottenere questa autorizzazione con ruoli personalizzati 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 multiregionali
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 in 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, uno per subnet sia esposto.
Un servizio Dataproc Metastore multiregionale offre configurazione del cluster active-active ad alta disponibilità. 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 funziona e i carichi di lavoro vengono instradati 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.
I servizi multiregionali supportano solo il tipo di database Spanner. consulta l'elenco delle funzionalità supportate prima di creare il servizio multiregionale.
I servizi multiregionali supportano solo Dataproc Metastore 2 configurazioni.
I servizi multiregionali creano bucket di elementi in una posizione multiregionale di Cloud Storage. Ad esempio, i bucket
Nam7
vengono creati nella località con 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 endpoint Thrift o gRPC, con Servizio Dataproc Metastore 2.
gRPC
Quando crei un servizio in più regioni che utilizza il protocollo endpoint gRPC, non è necessario configurare impostazioni di rete specifiche. Il protocollo gRPC gestisce il routing di rete per te.
Console
Nella console Google Cloud, vai alla pagina Dataproc Metastore.
Nella barra di navigazione, fai clic su +Crea.
Si apre la finestra di dialogo Crea servizio Metastore.
Seleziona Dataproc Metastore 2.
Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.
Per il Protocollo endpoint, seleziona gRPC.
Per creare e avviare il servizio, fai clic su Invia.
Il nuovo servizio metastore viene visualizzato in Dataproc Metastore . Lo stato mostra Creazione in corso finché il servizio non è pronto per l'uso. 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 in più regioni, esegui il comando
persone che seguo 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
olarge
. Se specifichi un valore perINSTANCE_SIZE
, non specifica 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
.
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 l'area multiregionale nam7
, devi fornire sia il valore
Regioni us-central1
e us-east4
.
Console
Nella console Google Cloud, vai alla pagina Dataproc Metastore.
Nella barra di navigazione, fai clic su +Crea.
Si apre la finestra di dialogo Crea servizio Metastore.
Seleziona Dataproc Metastore 2.
Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Due regioni.
Per ulteriori informazioni, consulta la sezione sui piani tariffari e sulle configurazioni di scalabilità.
Nel campo Nome servizio, inserisci un nome univoco per il servizio.
Per informazioni sulle convenzioni di denominazione, vedi Convenzione di denominazione delle risorse.
Per Protocollo endpoint, seleziona Thrift.
Per Configurazione rete, fornisci le subnet che formano le subnet che hai scelto configurazione multiregionale.
Per le restanti opzioni di configurazione del servizio, utilizza i valori predefiniti forniti.
Per creare e avviare il servizio, fai clic su Invia.
Il nuovo servizio metastore viene visualizzato in Dataproc Metastore . Lo stato mostra Creazione in corso finché il servizio non è pronto per l'uso. 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 che in cui stai creando il servizio Dataproc Metastore.SUBNET1
,SUBNET2
: un elenco di che formano una configurazione per più regioni. Puoi utilizzare lo ID, URL completo o nome relativo della subnet. Puoi specificare fino a sei sottoreti.LOCATION1
,LOCATION2
: un elenco di località che formano una configurazione per più regioni. Puoi utilizzare l'ID della stazione di ricarica. 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 Dataproc Metastore in più regioni. 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
Scopri come creare un Dataproc Metastore in più regioni segui le istruzioni per creare un servizio utilizzando l'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 progetto Google Cloud del progetto che contiene il servizio Dataproc Metastore.LOCATION
: la regione Google Cloud in cui Il servizio Dataproc Metastore risiede in.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 connettere una rete multiregionale Servizio Dataproc Metastore 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
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 di Dataproc in un cluster Kubernetes.PROJECT_ID
: il progetto Google Cloud che contiene il tuo cluster Dataproc. Assicurati che la subnet sia che utilizzi disponga delle autorizzazioni appropriate per accedere a questo progetto.MULTI_REGION
: la località multiregionale di 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 a2.0
.PROJECT
: il progetto che contiene Servizio Dataproc Metastore.SERVICE_ID
: l'ID servizio del tuo Servizio Dataproc Metastore.
Per creare il cluster, esegui questo 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
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
: la località multiregionale da 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.
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 subnet sia che utilizzi disponga delle autorizzazioni appropriate per accedere a questo progetto.DATAPROC_REGION
: la regione Google Cloud che in cui vuoi creare il tuo cluster Dataproc.HIVE_VERSION
: la versione di Hive che il tuo Utilizzi del servizio Dataproc Metastore.IMAGE_VERSION
: l'immagine Dataproc che stai utilizzando 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 lo archiviamo 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])")
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
Usato
Opzione 1: modifica il file hive-site.xml
- Trova l'URI endpoint e la directory del warehouse del tuo Servizio Dataproc Metastore. Puoi scegliere uno 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 Nodo principale Dataproc (
.*-m
).Sul nodo si apre una finestra del browser nella home directory.
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 tuo servizio Dataproc Metastore.WAREHOUSE_DIR
: la posizione del tuo Directory warehouse su Hive.
Riavvia HiveServer2:
sudo systemctl restart hive-server2.service
Opzione 2: utilizza gcloud CLI
Esegui il seguente comando gcloud dataproc clusters create
gcloud CLI.
- Trova l'URI endpoint e la directory del warehouse del tuo 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 subnet sia che utilizzi disponga delle autorizzazioni appropriate per accedere a questo progetto.PROJECT_ID
: la versione di Hive che il tuo Utilizzi del servizio Dataproc Metastore.IMAGE_VERSION
: l'immagine Dataproc che stai utilizzando 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 dell'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 warehouse del tuo Dataproc Metastore.
Configurazioni personalizzate delle regioni
Puoi configurare i servizi Dataproc Metastore in modo che utilizzino una regione personalizzata configurazione.
Una configurazione personalizzata per la regione consente al servizio di eseguire carichi di lavoro da due regioni. Questo fornisce ridondanza tra regioni, il che significa che i carichi di lavoro e accede a entrambe le regioni durante l'esecuzione dei job. Fornisce anche un meccanismo di failover per il tuo servizio. Ad esempio, se uno degli endpoint a livello di regione non va, la tua vengono instradati 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. Ciò può 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 si sceglie una regione di sola lettura e quella di lettura/scrittura non è raggiungibile, non sarà possibile elaborare la scrittura.
- Immutabilità della configurazione: una volta impostata, la configurazione della regione non può essere modificata.
- Solo stack US: le due regioni personalizzate supportano solo lo stack
US
e sono limitata al confine degli Stati Uniti.
Crea un servizio regionale personalizzato
Per configurare una regione personalizzata, scegli due regioni adiacenti quando crei il servizio. Questa combinazione può essere due regioni di lettura-scrittura o una regione di lettura-scrittura e una regione di sola lettura.
Console
Nella console Google Cloud, vai a Dataproc Metastore .
Nella barra di navigazione, fai clic su +Crea.
Si apre la finestra di dialogo Crea servizio Metastore.
Seleziona Dataproc Metastore 2.
Nella sezione Prezzi e capacità, seleziona Enterprise Plus - Doppia regione.
Nel campo Nome servizio, inserisci un nome univoco per il servizio.
Per Località dei dati, seleziona US (continent) (Stati Uniti (continente)).
Viene visualizzata la sezione Regioni personalizzate.
In Regioni personalizzate, seleziona una regione di lettura/scrittura e una regione di sola lettura.
Per le restanti opzioni di configurazione del servizio, utilizza i valori predefiniti forniti.
Per creare e avviare il servizio, fai clic su Invia.
Il nuovo servizio metastore viene visualizzato in Dataproc Metastore . Lo stato mostra Creazione in corso finché il servizio non è pronto per l'uso. 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
: una regione di lettura/scrittura supportata che fa parte della configurazione della regione personalizzata.READ_ONLY_REGIONS
: un'area geografica di sola lettura supportata che fa parte della configurazione delle regioni personalizzate.