Esta página mostra como configurar um serviço do Dataproc Metastore multirregional. Para mais informações sobre o funcionamento dos serviços de Metastore do Dataproc multirregionais, consulte as regiões do Metastore do Dataproc.
Antes de começar
- Ative o Dataproc Metastore no seu projeto.
- Compreenda os requisitos de rede específicos do seu projeto.
- Saiba mais sobre as regiões do Dataproc Metastore e escolha uma região adequada.
Funções necessárias
Para receber a autorização de que precisa para criar um serviço Dataproc Metastore multirregional, peça ao seu administrador que lhe conceda as seguintes funções de IAM no seu projeto, com base no princípio do menor privilégio:
-
Conceda controlo total dos recursos do Dataproc Metastore (
roles/metastore.editor
) -
Conceda acesso total a todos os recursos de Metastore do Dataproc, incluindo a administração de políticas de IAM (
roles/metastore.admin
)
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Esta função predefinida contém a autorização
metastore.services.create
, que é necessária para
criar um serviço Dataproc Metastore multirregional.
Também pode obter esta autorização com funções personalizadas ou outras funções predefinidas.
Para mais informações sobre as funções e as autorizações específicas do Dataproc Metastore, consulte o artigo Faça a gestão do acesso com o IAM.Acerca dos serviços de Metastore do Dataproc multirregionais
Os serviços multirregionais do Dataproc Metastore armazenam os seus dados em duas regiões diferentes e usam as duas regiões para executar as suas cargas de trabalho. Por exemplo, a multirregião nam7
contém as regiões us-central1
e us-east4
.
Um serviço de Metastore do Dataproc multirregional replica metadados em duas regiões e expõe os endpoints relevantes para aceder ao Hive Metastore. Para gRPC, é exposto um ponto final por região. Para o Thrift, é exposto um ponto final por sub-rede.
Um serviço de Metastore do Dataproc multirregional fornece uma configuração de cluster de alta disponibilidade (HA) ativo-ativo. Esta configuração significa que as cargas de trabalho podem aceder a qualquer uma das regiões quando executam tarefas. Também oferece um mecanismo de comutação por falha para o seu serviço. Por exemplo, se o seu endpoint regional principal ficar indisponível, as suas cargas de trabalho são encaminhadas automaticamente para a região secundária. Isto ajuda a evitar interrupções nos seus trabalhos do Dataproc.
Considerações
As seguintes considerações aplicam-se aos serviços de Metastore do Dataproc multirregionais.
Os serviços multirregionais só suportam o tipo de base de dados Spanner. Consulte a lista de funcionalidades suportadas antes de criar o seu serviço multirregional.
Os serviços multirregionais só suportam configurações do Dataproc Metastore 2.
Os serviços multirregionais criam contentores de artefactos numa localização multirregional do Cloud Storage. Por exemplo, os contentores
Nam7
são criados na localização multirregionalUS
.
Crie um serviço de Metastore do Dataproc multirregional
Escolha um dos seguintes separadores para saber como criar um serviço multirregional usando o protocolo de ponto final Thrift ou gRPC, com um serviço Dataproc Metastore 2.
gRPC
Quando cria um serviço multirregional que usa o protocolo de ponto final gRPC, não tem de definir nenhuma definição de rede específica. O protocolo gRPC processa o encaminhamento de rede por si.
Consola
Na Google Cloud consola, aceda à página Dataproc Metastore.
Na barra de navegação, clique em +Criar.
É apresentada a caixa de diálogo Criar serviço Metastore.
Selecione Dataproc Metastore 2.
Na secção Preços e capacidade, selecione Enterprise Plus – Região dupla
Para o Protocolo de ponto final, selecione gRPC.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore é apresentado na página Dataproc Metastore. O estado apresenta Creating (A criar) até o serviço estar pronto para utilização. Quando estiver pronto, o estado muda para Ativo. O aprovisionamento do serviço pode demorar alguns minutos.
CLI gcloud
Para criar um serviço multirregional do Dataproc Metastore, execute o seguinte comando gcloud metastore services create
. Este comando cria a versão 3.1.2 do Dataproc Metastore.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=grpc
Substitua o seguinte:
SERVICE
: o nome do seu serviço do Dataproc Metastore.MULTI_REGION
: a multirregião na qual está a criar o seu serviço Dataproc Metastore.INSTANCE_SIZE
: o tamanho da instância do seu Dataproc Metastore multirregional. Por exemplo,small
,medium
oularge
. Se especificar um valor paraINSTANCE_SIZE
, não especifique um valor paraSCALING_FACTOR
.SCALING_FACTOR
: o fator de dimensionamento do seu serviço Dataproc Metastore. Por exemplo,0.1
. Se especificar um valor paraSCALING_FACTOR
, não especifique um valor paraINSTANCE_SIZE
.
Poupança
Quando cria um serviço multirregional que usa o protocolo de ponto final Thrift, tem de definir as definições de sub-rede adequadas. Neste caso, para cada rede VPC que estiver a usar, tem de indicar, pelo menos, uma sub-rede de cada região.
Por exemplo, para criar a região múltipla nam7
, tem de indicar as regiões us-central1
e us-east4
.
Consola
Na Google Cloud consola, aceda à página Dataproc Metastore.
Na barra de navegação, clique em +Criar.
É apresentada a caixa de diálogo Criar serviço Metastore.
Selecione Dataproc Metastore 2.
Na secção Preços e capacidade, selecione Enterprise Plus – Região dupla.
Para mais informações, consulte os planos de preços e as configurações de escalabilidade.
No campo Nome do serviço, introduza um nome exclusivo para o seu serviço.
Para obter informações sobre convenções de nomenclatura, consulte o artigo Convenção de nomenclatura de recursos.
Para o Protocolo de ponto final, selecione Thrift.
Para Configuração de rede, indique as sub-redes que formam a configuração multirregional escolhida.
Para as restantes opções de configuração do serviço, use as predefinições fornecidas.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore é apresentado na página Dataproc Metastore. O estado apresenta Creating (A criar) até o serviço estar pronto para utilização. Quando estiver pronto, o estado muda para Ativo. O aprovisionamento do serviço pode demorar alguns minutos.
CLI gcloud
Para criar um serviço multirregional do Dataproc Metastore,
execute o seguinte comando gcloud metastore services create
.
Este comando cria a versão 3.1.2 do Dataproc Metastore.
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
Em alternativa, pode armazenar as definições de rede num ficheiro, conforme mostrado no comando seguinte.
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
Substitua o seguinte:
SERVICE
: o nome do seu serviço do Dataproc Metastore.MULTI_REGION
: a multirregião na qual está a criar o seu serviço Dataproc Metastore.PROJECT_ID
: o ID do projeto no qual está a criar o serviço Dataproc Metastore. Google CloudSUBNET1
,SUBNET2
: uma lista de sub-redes que formam uma configuração multirregional. Pode usar o ID, o URL totalmente qualificado ou o nome relativo da sub-rede. Pode especificar até seis sub-redes.LOCATION1
,LOCATION2
: uma lista de localizações que formam uma configuração multirregional. Pode usar o ID da localização. Por exemplo, para umanam7
multirregião, usaus-central1
eus-east4
.NETWORK_CONFIG_FROM_FILE
: o caminho para um ficheiro YAML que contenha a sua configuração de rede.INSTANCE_SIZE
: o tamanho da instância do seu Dataproc Metastore multirregional. Por exemplo,small
,medium
oularge
. Se especificar um valor paraINSTANCE_SIZE
, não especifique um valor paraSCALING_FACTOR
.SCALING_FACTOR
: o fator de dimensionamento do seu serviço Dataproc Metastore. Por exemplo,0.1
. Se especificar um valor paraSCALING_FACTOR
, não especifique um valor paraINSTANCE_SIZE
.
REST
Para saber como criar um serviço Dataproc Metastore multirregional, siga as instruções para criar um serviço através do Google APIs Explorer.
Para configurar um serviço multirregional, forneça as seguintes informações
nos objetos 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 } }
Substitua o seguinte:
PROJECT_ID
: o ID do projeto Google Cloud do projeto que contém o seu serviço Dataproc Metastore.LOCATION
: a região em que o seu serviço Dataproc Metastore reside. Google CloudSUBNET1
,SUBNET2
: uma lista de sub-redes que formam uma configuração multirregional. Pode usar o ID, o URL totalmente qualificado ou o nome relativo da sub-rede. Pode especificar até cinco sub-redes.SCALING_FACTOR
: o fator de escalabilidade que quer usar para o serviço.
Associe o Dataproc Metastore a um cluster do Dataproc
Escolha um dos seguintes separadores para saber como ligar um serviço Dataproc Metastore multirregional a partir de um cluster do Dataproc.
gRPC
Para ligar um cluster do Dataproc, escolha o separador que corresponde à versão do Dataproc Metastore que está a usar.
Dataproc Metastore 3.1.2
Crie as seguintes variáveis para o seu cluster do 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
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster do Dataproc.PROJECT_ID
: o Google Cloud projeto que contém o seu cluster do Dataproc. Certifique-se de que a sub-rede que está a usar tem as autorizações adequadas para aceder a este projeto.MULTI_REGION
: a Google Cloud região múltipla na qual quer criar o cluster do Dataproc.DATAPROC_IMAGE_VERSION
: a versão da imagem do Dataproc que está a usar com o seu serviço Dataproc Metastore. Tem de usar uma versão de imagem de2.0
ou superior.PROJECT
: o projeto que contém o seu serviço Dataproc Metastore.SERVICE_ID
: o ID do serviço do seu serviço Dataproc Metastore.
Para criar o cluster, execute o seguinte comando
gcloud dataproc clusters create
--enable-kerberos
é opcional. Inclua esta opção apenas se estiver a usar o Kerberos com o 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
Crie as seguintes variáveis para o serviço Dataproc Metastore:
METASTORE_PROJECT=METASTORE_PROJECT METASTORE_ID=METASTORE_ID MULTI_REGION=MULTI_REGION SUBNET=SUBNET
Substitua o seguinte:
METASTORE_PROJECT
: o Google Cloud projeto que contém o seu serviço Dataproc Metastore.METASTORE_ID
: o ID do serviço do seu serviço Dataproc Metastore.MULTI_REGION
: a localização multirregião que quer usar para o seu serviço Dataproc Metastore.SUBNET
: uma das sub-redes que está a usar para o seu serviço Dataproc Metastore. Ou qualquer sub-rede na rede VPC principal das sub-redes usadas para o seu serviço.
Crie as seguintes variáveis para o seu cluster do Dataproc:
CLUSTER_NAME=CLUSTER_NAME DATAPROC_PROJECT=DATAPROC_PROJECT DATAPROC_REGION=DATAPROC_REGION HIVE_VERSION=HIVE_VERSION IMAGE_VERSION=
r>IMAGE_VERSION Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster do Dataproc.DATAPROC_PROJECT
: o Google Cloud projeto que contém o seu cluster do Dataproc. Certifique-se de que a sub-rede que está a usar tem as autorizações adequadas para aceder a este projeto.DATAPROC_REGION
: a Google Cloud região na qual quer criar o cluster do Dataproc.HIVE_VERSION
: a versão do Hive que o seu serviço Dataproc Metastore usa.IMAGE_VERSION
: a versão da imagem do Dataproc que está a usar com o seu serviço Dataproc Metastore.- Para a versão 2.0 do Hive Metastore, use a versão da imagem
1.5
. - Para a versão 3.1.2 do Hive Metastore, use a versão da imagem
2.0
.
- Para a versão 2.0 do Hive Metastore, use a versão da imagem
Obtenha o diretório do armazém do seu serviço de Metastore do Dataproc e armazene-o numa variável.
WAREHOUSE_DIR=$(gcloud metastore services describe "${METASTORE_ID}" --project "${METASTORE_PROJECT}" --location "${MULTI_REGION}" --format="get(hiveMetastoreConfig.configOverrides[hive.metastore.warehouse.dir])")
Crie um cluster do Dataproc configurado com um Dataproc Metastore multirregional.
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
Poupança
Opção 1: edite o ficheiro hive-site.xml
- Encontre o URI do ponto final e o diretório do armazém do seu serviço Dataproc Metastore. Pode escolher qualquer um dos pontos finais expostos.
- Na Google Cloud consola, aceda à página Instâncias de VM.
Na lista de instâncias de máquinas virtuais, clique em SSH na linha do nó principal do Dataproc (
.*-m
).É aberta uma janela do navegador no seu diretório base no nó.
Abra o ficheiro
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Vê um resultado semelhante ao seguinte:
<property> <name>hive.metastore.uris</name> <value>ENDPOINT_URI</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Substitua o seguinte:
ENDPOINT_URI
: o URI do ponto final do seu serviço Dataproc Metastore.WAREHOUSE_DIR
: a localização do seu diretório de armazéns de dados do Hive.
Reinicie o HiveServer2:
sudo systemctl restart hive-server2.service
Opção 2: use a CLI gcloud
Execute o seguinte comando da CLI gcloud.gcloud dataproc clusters create
- Encontre o URI do ponto final e o diretório do armazém do seu serviço Dataproc Metastore. Pode escolher qualquer um dos pontos finais expostos.
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"
Substitua o seguinte:
CLUSTER_NAME
: o nome do cluster do Dataproc.NETWORK
: o Google Cloud projeto que contém o seu cluster do Dataproc. Certifique-se de que a sub-rede que está a usar tem as autorizações adequadas para aceder a este projeto.PROJECT_ID
: a versão do Hive que o seu serviço Dataproc Metastore usa.IMAGE_VERSION
: a versão da imagem do Dataproc que está a usar com o seu serviço Dataproc Metastore.- Para a versão 2.0 do Hive Metastore, use a versão da imagem
1.5
. - Para a versão 3.1.2 do Hive Metastore, use a versão da imagem
2.0
.
- Para a versão 2.0 do Hive Metastore, use a versão da imagem
ENDPOINT
: o ponto final Thrift que o seu Dataproc Metastore usa.WAREHOUSE_DIR
: o diretório do armazém do seu Dataproc Metastore.
Configurações de regiões personalizadas
Pode configurar os serviços do Dataproc Metastore para usar uma configuração de região personalizada.
Uma configuração de região personalizada permite que o seu serviço execute cargas de trabalho a partir de duas regiões separadas. Isto oferece redundância entre regiões, o que significa que as cargas de trabalho podem aceder a qualquer uma das regiões quando executam tarefas. Também oferece um mecanismo de comutação por falha para o seu serviço. Por exemplo, se um dos pontos finais regionais ficar inativo, as suas cargas de trabalho são encaminhadas automaticamente para a outra região. Isto ajuda a evitar interrupções nas suas cargas de trabalho e tarefas.
As configurações de regiões personalizadas também lhe permitem controlar onde está a armazenar metadados e onde expor os seus pontos finais do Hive Metastore. Isto pode melhorar o desempenho ao processar cargas de trabalho.
Considerações
As seguintes considerações aplicam-se aos serviços do Dataproc Metastore configurados com uma configuração de região personalizada:
- Restrições de região/sincronização: nem todas as regiões e combinações são permitidas.
- Limitações de só de leitura: as regiões só de leitura não podem aceitar operações de escrita. Se for escolhida uma região de leitura e a região de leitura/escrita estiver inacessível, a escrita não é processada.
- Imutabilidade da configuração: depois de definida, não é possível alterar a configuração da região.
- Apenas nos EUA: as regiões duplas personalizadas só suportam a pilha
US
e estão limitadas à fronteira dos EUA.
Crie um serviço de região personalizado
Para configurar uma região personalizada, escolha duas regiões adjacentes quando criar o seu serviço. Esta combinação pode ser de duas regiões de leitura/escrita ou uma região de leitura/escrita e uma região só de leitura.
Consola
Na Google Cloud consola, aceda à página Dataproc Metastore.
Na barra de navegação, clique em +Criar.
É apresentada a caixa de diálogo Criar serviço Metastore.
Selecione Dataproc Metastore 2.
Na secção Preços e capacidade, selecione Enterprise Plus – Região dupla.
No campo Nome do serviço, introduza um nome exclusivo para o seu serviço.
Para Localização de dados, selecione EUA (continente).
É apresentada a secção Regiões personalizadas.
Em Regiões personalizadas, selecione uma região de Leitura/escrita e uma região de Só de leitura.
Para as restantes opções de configuração do serviço, use as predefinições fornecidas.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore é apresentado na página Dataproc Metastore. O estado apresenta Creating (A criar) até o serviço estar pronto para utilização. Quando estiver pronto, o estado muda para Ativo. O aprovisionamento do serviço pode demorar alguns minutos.
gcloud
Para criar um serviço Dataproc Metastore com regiões personalizadas,
execute o seguinte comando da CLI gcloud gcloud beta metastore services create
gcloud beta metastore services create SERVICE \ --read-write-regions
Substitua o seguinte:
SERVICE
: o nome do seu serviço do Dataproc Metastore.READ_WRITE_REGIONS
: uma região de leitura/gravação suportada que faz parte da configuração da sua região personalizada.READ_ONLY_REGIONS
: uma região só de leitura suportada que faz parte da configuração da sua região personalizada.