Nesta página, mostramos como configurar um serviço do metastore do Dataproc multirregional. Para mais informações sobre como os serviços multirregionais do metastore do Dataproc funcionam, consulte Regiões do metastore do Dataproc.
Antes de começar
- Ative o Dataproc Metastore no seu projeto.
- Entenda os requisitos de rede específicos do seu projeto.
- Saiba mais sobre as regiões do metastore do Dataproc e escolha uma adequada.
Funções exigidas
Para receber a permissão necessária para criar um serviço multirregional do Dataproc Metastore, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, com base no princípio de privilégio mínimo:
-
Conceder controle total dos recursos do metastore do Dataproc (
roles/metastore.editor
) -
Conceder acesso total a todos os recursos do metastore do Dataproc, incluindo a administração de políticas do IAM (
roles/metastore.admin
)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a
permissão
metastore.services.create
,
que é necessária para
criar um serviço multirregional do Dataproc Metastore.
Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.
Para mais informações sobre papéis e permissões específicos do Dataproc Metastore, consulte Gerenciar acesso com o IAM.Sobre os serviços multirregionais do metastore do Dataproc
Os serviços multirregionais do metastore do Dataproc armazenam seus dados em duas regiões diferentes e usam essas duas regiões para executar suas cargas de trabalho. Por exemplo, a multirregião nam7
contém as regiões us-central1
e us-east4
.
Um serviço multirregional do metastore do Dataproc replica metadados em duas regiões e expõe os endpoints relevantes para acessar o metastore do Hive. Para gRPC, um endpoint por região é exposto. Para o Thrift, um endpoint por sub-rede é exposto.
Um serviço multirregional do Dataproc Metastore oferece uma configuração de cluster de alta disponibilidade (HA) ativo-ativo. Essa configuração significa que as cargas de trabalho podem acessar qualquer região ao executar jobs. Ele também oferece um mecanismo de failover para seu serviço. Por exemplo, se o endpoint regional principal ficar inativo, as cargas de trabalho serão encaminhadas automaticamente para a região secundária. Isso ajuda a evitar interrupções nos seus jobs do Dataproc.
Considerações
As considerações a seguir se aplicam aos serviços multirregionais do metastore do Dataproc.
Os serviços multirregionais só são compatíveis com o tipo de banco de dados do Spanner. Consulte a lista de recursos compatíveis antes de criar seu serviço multirregional.
Os serviços multirregionais são compatíveis apenas com configurações do Dataproc Metastore 2.
Os serviços multirregionais criam buckets de artefatos em um local multirregional do Cloud Storage. Por exemplo, os buckets
Nam7
são criados no local multirregionalUS
.
Criar um serviço multirregional do metastore do Dataproc
Escolha uma das seguintes guias para saber como criar um serviço multirregional usando o protocolo de endpoint Thrift ou gRPC com um serviço Metastore do Dataproc 2.
gRPC
Ao criar um serviço multirregional que usa o protocolo de endpoint gRPC, não é necessário definir configurações de rede específicas. O protocolo gRPC processa o roteamento de rede para você.
Console
No console do Google Cloud , acesse a página Metastore do Dataproc.
Na barra de navegação, clique em +Criar.
A caixa de diálogo Criar serviço de metastore é aberta.
Selecione Dataproc Metastore 2.
Na seção Preços e capacidade, selecione Enterprise Plus - birregional.
Em Protocolo do endpoint, selecione gRPC.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore aparece na página Metastore do Dataproc. O status mostra Criando até que o serviço esteja pronto para uso. Quando estiver pronto, o status vai mudar para Ativo. O provisionamento do serviço pode levar alguns minutos.
CLI da gcloud
Para criar um serviço multirregional do Dataproc Metastore, execute o seguinte comando gcloud metastore services create
. Esse comando cria a versão 3.1.2 do metastore do Dataproc.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=grpc
Substitua:
SERVICE
: o nome do seu serviço metastore do Dataproc.MULTI_REGION
: a multirregião em que você está criando o serviço do metastore do Dataproc.INSTANCE_SIZE
: o tamanho da instância do metastore multirregional do Dataproc. Por exemplo,small
,medium
oularge
. Se você especificar um valor paraINSTANCE_SIZE
, não especifique um valor paraSCALING_FACTOR
.SCALING_FACTOR
: o fator de escalonamento do serviço metastore do Dataproc. Por exemplo,0.1
. Se você especificar um valor paraSCALING_FACTOR
, não especifique um valor paraINSTANCE_SIZE
.
Thrift
Ao criar um serviço multirregional que usa o protocolo de endpoint Thrift, você precisa definir as configurações de sub-rede adequadas. Nesse caso, para cada rede VPC que você estiver usando, forneça pelo menos uma sub-rede de cada região.
Por exemplo, para criar a multirregião nam7
, é necessário fornecer as regiões us-central1
e us-east4
.
Console
No console do Google Cloud , acesse a página Metastore do Dataproc.
Na barra de navegação, clique em +Criar.
A caixa de diálogo Criar serviço de metastore é aberta.
Selecione Dataproc Metastore 2.
Na seção Preços e capacidade, selecione Enterprise Plus: birregional.
Para mais informações, consulte planos de preços e configurações de escalonamento.
No campo Nome do serviço, insira um nome exclusivo para o serviço.
Para informações sobre convenções de nomenclatura, consulte Convenção de nomenclatura de recursos.
Em Protocolo do endpoint, selecione Thrift.
Em Configuração de rede, forneça as sub-redes que formam a configuração multirregional escolhida.
Para as outras opções de configuração do serviço, use os padrões fornecidos.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore aparece na página Metastore do Dataproc. O status mostra Criando até que o serviço esteja pronto para uso. Quando estiver pronto, o status vai mudar para Ativo. O provisionamento do serviço pode levar alguns minutos.
CLI da gcloud
Para criar um serviço multirregional do metastore do Dataproc, execute o seguinte comando gcloud metastore services create
.
Esse comando cria a versão 3.1.2 do metastore do Dataproc.
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
Ou você pode armazenar as configurações de rede em um arquivo, conforme mostrado no comando a seguir.
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:
SERVICE
: o nome do seu serviço metastore do Dataproc.MULTI_REGION
: a multirregião em que você está criando o serviço do metastore do Dataproc.PROJECT_ID
: o ID do projeto Google Cloud em que você está criando o serviço do Dataproc Metastore.SUBNET1
,SUBNET2
: uma lista de sub-redes que formam uma configuração multirregional. É possível usar o ID, o URL totalmente qualificado ou o nome relativo da sub-rede. É possível especificar até seis sub-redes.LOCATION1
,LOCATION2
: uma lista de locais que formam uma configuração multirregional. É possível usar o ID do local. Por exemplo, para uma multirregiãonam7
, useus-central1
eus-east4
.NETWORK_CONFIG_FROM_FILE
: o caminho para um arquivo YAML que contém a configuração de rede.INSTANCE_SIZE
: o tamanho da instância do metastore multirregional do Dataproc. Por exemplo,small
,medium
oularge
. Se você especificar um valor paraINSTANCE_SIZE
, não especifique um valor paraSCALING_FACTOR
.SCALING_FACTOR
: o fator de escalonamento do serviço metastore do Dataproc. Por exemplo,0.1
. Se você especificar um valor paraSCALING_FACTOR
, não especifique um valor paraINSTANCE_SIZE
.
REST
Para saber como criar um serviço multirregional do Dataproc Metastore, siga as instruções para criar um serviço usando o 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:
PROJECT_ID
: o Google Cloud ID do projeto que contém seu serviço do metastore do Dataproc.LOCATION
: a Google Cloud região em que o serviço Dataproc Metastore está localizado.SUBNET1
,SUBNET2
: uma lista de sub-redes que formam uma configuração multirregional. É possível usar o ID, o URL totalmente qualificado ou o nome relativo da sub-rede. É possível especificar até cinco sub-redes.SCALING_FACTOR
: o fator de escalonamento que você quer usar para o serviço.
Conectar o metastore do Dataproc a um cluster do Dataproc
Escolha uma das seguintes guias para saber como conectar um serviço do Dataproc Metastore multirregional de um cluster do Dataproc.
gRPC
Para conectar um cluster do Dataproc, escolha a guia que corresponde à versão do metastore do Dataproc que você está usando.
Dataproc Metastore 3.1.2
Crie as seguintes variáveis para o 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:
CLUSTER_NAME
: o nome do cluster do Dataproc.PROJECT_ID
: o Google Cloud projeto que contém seu cluster do Dataproc. Verifique se a sub-rede que você está usando tem as permissões adequadas para acessar este projeto.MULTI_REGION
: a Google Cloud multirregião em que você quer criar o cluster do Dataproc.DATAPROC_IMAGE_VERSION
: a versão da imagem do Dataproc que você está usando com o serviço do metastore do Dataproc. Use uma versão de imagem2.0
ou mais recente.PROJECT
: o projeto que contém seu serviço Dataproc Metastore.SERVICE_ID
: o ID do serviço do metastore do Dataproc.
Para criar o cluster, execute o seguinte comando
gcloud dataproc clusters create
:--enable-kerberos
é opcional. Inclua essa opção somente se você estiver usando o Kerberos com seu 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 seu serviço do Dataproc Metastore:
METASTORE_PROJECT=METASTORE_PROJECT METASTORE_ID=METASTORE_ID MULTI_REGION=MULTI_REGION SUBNET=SUBNET
Substitua:
METASTORE_PROJECT
: o Google Cloud projeto que contém seu serviço do metastore do Dataproc.METASTORE_ID
: o ID do serviço do metastore do Dataproc.MULTI_REGION
: o local multirregional que você quer usar para o serviço do Dataproc Metastore.SUBNET
: uma das sub-redes que você está usando para o serviço Metastore do Dataproc. Ou qualquer sub-rede na rede VPC principal das sub-redes usadas para seu serviço.
Crie as seguintes variáveis para o 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:
CLUSTER_NAME
: o nome do cluster do Dataproc.DATAPROC_PROJECT
: o Google Cloud projeto que contém seu cluster do Dataproc. Verifique se a sub-rede que você está usando tem as permissões adequadas para acessar este projeto.DATAPROC_REGION
: a Google Cloud região em que você quer criar o cluster do Dataproc.HIVE_VERSION
: a versão do Hive usada pelo seu serviço Dataproc Metastore.IMAGE_VERSION
: a versão da imagem do Dataproc que você está usando com o serviço metastore do Dataproc.- 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 de imagem
2.0
.
- Para a versão 2.0 do Hive Metastore, use a versão da imagem
Recupere o diretório de armazenamento do serviço Metastore do Dataproc e armazene-o em uma 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
Thrift
Opção 1: editar o arquivo hive-site.xml
- Encontre o URI do endpoint e o diretório do armazenamento do seu serviço do metastore do Dataproc. Você pode escolher qualquer um dos endpoints expostos.
- No console Google Cloud , acesse a página Instâncias de VM.
Na lista de instâncias de máquina virtual, clique em SSH na linha do nó principal do Dataproc (
.*-m
).Uma janela do navegador é aberta no diretório inicial do nó.
Abra o arquivo
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Você vai ver uma saída semelhante a esta:
<property> <name>hive.metastore.uris</name> <value>ENDPOINT_URI</value> </property> <property> <name>hive.metastore.warehouse.dir</name> <value>WAREHOUSE_DIR</value> </property>
Substitua:
ENDPOINT_URI
: o URI do endpoint do serviço do metastore do Dataproc.WAREHOUSE_DIR
: o local do seu diretório do depósito do Hive.
Reinicie o HiveServer2:
sudo systemctl restart hive-server2.service
Opção 2: usar a CLI gcloud
Execute o seguinte comando da CLI gcloud gcloud dataproc clusters create
.
- Encontre o URI do endpoint e o diretório do armazenamento do seu serviço do metastore do Dataproc. Você pode escolher qualquer um dos endpoints 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:
CLUSTER_NAME
: o nome do cluster do Dataproc.NETWORK
: o Google Cloud projeto que contém seu cluster do Dataproc. Verifique se a sub-rede que você está usando tem as permissões adequadas para acessar este projeto.PROJECT_ID
: a versão do Hive usada pelo seu serviço Dataproc Metastore.IMAGE_VERSION
: a versão da imagem do Dataproc que você está usando com o serviço metastore do Dataproc.- 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 de imagem
2.0
.
- Para a versão 2.0 do Hive Metastore, use a versão da imagem
ENDPOINT
: o endpoint Thrift usado pelo metastore do Dataproc.WAREHOUSE_DIR
: o diretório do data warehouse do metastore do Dataproc.
Configurações de região personalizadas
É possível configurar os serviços do metastore do Dataproc para usar uma configuração de região personalizada.
Com uma configuração de região personalizada, seu serviço pode executar cargas de trabalho de duas regiões separadas. Isso oferece redundância entre regiões, o que significa que as cargas de trabalho podem acessar qualquer uma das regiões ao executar jobs. Ele também oferece um mecanismo de failover para seu serviço. Por exemplo, se um dos endpoints regionais ficar inativo, suas cargas de trabalho serão roteadas automaticamente para a outra região. Isso ajuda a evitar interrupções nas suas cargas de trabalho e jobs.
Com as configurações de região personalizadas, você também controla onde os metadados são armazenados e onde expor os endpoints do metastore do Hive. Isso pode melhorar o desempenho ao processar cargas de trabalho.
Considerações
As considerações a seguir se aplicam aos serviços do metastore do Dataproc configurados com uma configuração de região personalizada:
- Restrições de região/pareamento: nem todas as regiões e combinações são permitidas.
- Limitações de somente leitura: as regiões somente leitura não podem aceitar operações de gravação. Se uma região somente leitura for escolhida e a região de leitura/gravação estiver inacessível, a gravação não será processada.
- Imutabilidade da configuração: depois de definida, a configuração da região não pode ser mudada.
- Somente pilha dos EUA: as regiões duplas personalizadas oferecem suporte apenas à pilha
US
e são limitadas à fronteira dos EUA.
Criar um serviço de região personalizado
Para configurar uma região personalizada, escolha duas regiões adjacentes ao criar seu serviço. Essa combinação pode ser duas regiões de leitura/gravação ou uma de leitura/gravação e uma somente leitura.
Console
No console do Google Cloud , acesse a página Metastore do Dataproc.
Na barra de navegação, clique em +Criar.
A caixa de diálogo Criar serviço de metastore é aberta.
Selecione Dataproc Metastore 2.
Na seção Preços e capacidade, selecione Enterprise Plus: birregional.
No campo Nome do serviço, insira um nome exclusivo para o serviço.
Em Local dos dados, selecione US (continente).
A seção Regiões personalizadas aparece.
Em Regiões personalizadas, selecione uma região de Leitura/gravação e uma de Somente leitura.
Para as outras opções de configuração do serviço, use os padrões fornecidos.
Para criar e iniciar o serviço, clique em Enviar.
O novo serviço de metastore aparece na página Metastore do Dataproc. O status mostra Criando até que o serviço esteja pronto para uso. Quando estiver pronto, o status vai mudar para Ativo. O provisionamento do serviço pode levar alguns minutos.
gcloud
Para criar um serviço do metastore do Dataproc 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:
SERVICE
: o nome do seu serviço metastore do Dataproc.READ_WRITE_REGIONS
: uma região de leitura e gravação compatível que faz parte da sua configuração de região personalizada.READ_ONLY_REGIONS
: uma região somente leitura compatível que faz parte da sua configuração de região personalizada.