Nesta página, mostramos como configurar um metastore do Dataproc multirregional serviço. Para mais informações sobre como configurar Os serviços do Dataproc Metastore funcionam. Consulte Metastore do Dataproc ou várias regiões.
Antes de começar
- Ativar o metastore do Dataproc em seu projeto.
- Entenda os requisitos de rede específicos do seu projeto.
- Saiba mais sobre as regiões do metastore do Dataproc e escolha a região apropriada.
Funções exigidas
Para receber a permissão necessária para criar um serviço de Metastore do Dataproc multirregional, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto, com base no princípio do 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 de Metastore do Dataproc multirregional.
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 o acesso com o IAM.Sobre os serviços multirregionais do Dataproc Metastore
Os serviços multirregionais do Dataproc Metastore armazenam seus dados em duas
regiões diferentes e usam as duas para executar seus workloads. Por exemplo:
o nam7
multirregional contém as regiões us-central1
e us-east4
.
Um serviço do metastore do Dataproc multirregional replica metadados em duas regiões e expõe os endpoints relevantes para acessar o metastore do Hive. No caso do gRPC, um endpoint por região é exposto. Para Thrift, um endpoint por sub-rede é exposto.
Um serviço de metastore multirregional do Dataproc fornece 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 tem um mecanismo de failover para seu serviço. Por exemplo, se o endpoint regional principal ficar inativo, as cargas de trabalho serão roteadas automaticamente para a região secundária. Isso ajuda a evitar interrupções nos seus trabalhos do Dataproc.
Considerações
As considerações a seguir se aplicam a serviços multirregionais do metastore do Dataproc.
Os serviços multirregionais só oferecem suporte ao tipo de banco de dados do Spanner. Confira a lista de recursos com suporte antes de criar seu serviço multirregional.
Os serviços multirregionais oferecem suporte apenas ao Dataproc Metastore 2 personalizadas.
Os serviços multirregionais criam buckets de artefato em um local multirregional do Cloud Storage. Por exemplo: Os buckets
Nam7
são criados no local multirregionalUS
.
Criar um serviço multirregional do Dataproc Metastore
Escolha uma das guias a seguir para saber como criar um serviço multirregional. usando o protocolo de endpoint Thrift ou gRPC, com uma Serviço do Dataproc Metastore 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 será Creating até que o serviço esteja pronto para uso. Quando ela estiver pronta, 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 o Dataproc Metastore versão 3.1.2.
gcloud metastore services create SERVICE \ --location=MULTI_REGION \ { --instance-size=INSTANCE_SIZE | --scaling-factor=SCALING_FACTOR } \ --endpoint-protocol=grpc
Substitua:
SERVICE
: o nome do serviço do metastore do Dataproc.MULTI_REGION
: a várias regiões em que você está criando o serviço do metastore do Dataproc.INSTANCE_SIZE
: o tamanho da instância. do seu 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
.
Economia
Ao criar um serviço multirregional que usa o protocolo de endpoint Thrift, você precisa definir as configurações de sub-rede apropriadas. Nesse caso, para cada rede VPC que você estiver usando, é necessário fornecer pelo menos uma sub-rede de cada região.
Por exemplo, para criar a multirregião nam7
, é necessário fornecer os dois
us-central1
e us-east4
regiões.
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 Metastore do Dataproc 2.
Na seção Preço e capacidade, selecione Enterprise Plus - Dual region.
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, informe as sub-redes que formam as configuração multirregional.
Para as demais opções de configuração de 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 será Creating até que o serviço esteja pronto para uso. Quando ela estiver pronta, 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 comando gcloud metastore services create
abaixo.
Esse comando cria o Dataproc Metastore versão 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
Ou você pode armazenar as configurações de rede em um arquivo, conforme mostrado no comando abaixo.
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 serviço Metastore do Dataproc.MULTI_REGION
: a multirregião que em que o serviço do Dataproc Metastore está sendo criado.PROJECT_ID
: o ID do projeto do Google Cloud que em que o serviço Metastore do Dataproc está sendo criado.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. Você pode especificar até seis sub-redes.LOCATION1
,LOCATION2
: uma lista de locais que formam uma configuração multirregional. Você pode 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 paraINSTANCE_SIZE
.
REST
Para saber como criar um metastore do Dataproc multirregional serviço, siga as instruções para criar um serviço usando o APIs Explorer do Google.
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 ID do projeto do Google Cloud do projeto que contém o serviço Metastore do Dataproc.LOCATION
: a região do Google Cloud em que o serviço do 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. Você pode especificar até cinco subredes.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 guias a seguir para saber como conectar uma conta Serviço Metastore do Dataproc de um cluster do Dataproc.
gRPC
Para conectar um cluster do Dataproc, escolha a guia que corresponde ao do Dataproc Metastore que você está usando.
Metastore do Dataproc 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 projeto do Google Cloud que que contém o cluster do Dataproc. Verifique se a sub-rede que está usando tem as permissões apropriadas para acessar este projeto.MULTI_REGION
: a multirregião do Google Cloud 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 imagem de2.0
ou mais recente.PROJECT
: o projeto que contém o serviço Metastore do Dataproc.SERVICE_ID
: o ID do serviço do serviço Metastore do Dataproc.
Para criar o cluster, execute o seguinte
gcloud dataproc clusters create
kubectl.--enable-kerberos
é opcional. Só inclua essa opção se se você está 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 ]
Metastore do Dataproc 2.3.6
Crie as seguintes variáveis para seu serviço do Metastore do Dataproc:
METASTORE_PROJECT=METASTORE_PROJECT METASTORE_ID=METASTORE_ID MULTI_REGION=MULTI_REGION SUBNET=SUBNET
Substitua:
METASTORE_PROJECT
: o projeto do Google Cloud que contém o serviço do metastore do Dataproc.METASTORE_ID
: o ID do serviço do seu serviço de metastore do Dataproc.MULTI_REGION
: o local multirregional que você quer usar para o serviço de metastore do Dataproc.SUBNET
: uma das sub-redes que você está usando. do serviço Metastore do Dataproc. Ou qualquer sub-rede na rede VPC mãe das sub-redes usadas para o 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 Dataproc. aglomerado.DATAPROC_PROJECT
: o projeto do Google Cloud que contém seu cluster do Dataproc. Verifique se a sub-rede que está usando tem as permissões apropriadas para acessar este projeto.DATAPROC_REGION
: a região do Google Cloud que em que você quer criar o cluster do Dataproc.HIVE_VERSION
: a versão do Hive que seu Usos do serviço Metastore do Dataproc.IMAGE_VERSION
: a versão da imagem do Dataproc que você está usando com o serviço Metastore do Dataproc.- Para o Hive Metastore versão 2.0, use a versão de imagem
1.5
. - Para a versão 3.1.2 do Metastore do Hive, use a versão de imagem
2.0
.
- Para o Hive Metastore versão 2.0, use a versão de imagem
Extraia 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 uma Metastore do Dataproc 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
Economia
Opção 1: editar o arquivo hive-site.xml
- Encontre o URI do endpoint e o diretório de warehouse dos serviço Metastore do Dataproc. Você pode escolha um dos endpoints expostos.
- No console do Google Cloud, acesse a página Instâncias de VM.
Na lista de instâncias de máquina virtual, clique em SSH na linha Nó principal do Dataproc (
.*-m
).Uma janela do navegador é aberta no diretório principal do nó.
Abra o arquivo
/etc/hive/conf/hive-site.xml
.sudo vim /etc/hive/conf/hive-site.xml
Você verá uma resposta 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 seu serviço do metastore do Dataproc.WAREHOUSE_DIR
: o local do seu Diretório do warehouse do Hive.
Reinicie o HiveServer2:
sudo systemctl restart hive-server2.service
Opção 2: usar a CLI gcloud
Execute o comando gcloud dataproc clusters create
da CLI gcloud a seguir.
- Encontre o URI do endpoint e o diretório de warehouse dos serviço Metastore do Dataproc. Você pode escolha 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 Dataproc. cluster.NETWORK
: o projeto do Google Cloud que que contém o cluster do Dataproc. Verifique se a sub-rede que você está usando tem as permissões adequadas para acessar o projeto.PROJECT_ID
: a versão do Hive usada pelo seu serviço do Dataproc Metastore.IMAGE_VERSION
: a imagem do Dataproc versão que você está usando com seu serviço Metastore do Dataproc.- Para o Hive Metastore versão 2.0, use a versão de imagem
1.5
. - Para a versão 3.1.2 do Metastore do Hive, use a versão de imagem
2.0
.
- Para o Hive Metastore versão 2.0, use a versão de imagem
ENDPOINT
: o endpoint do Thrift que seu o Dataproc Metastore.WAREHOUSE_DIR
: o diretório do repositório do seu 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.
Uma configuração de região personalizada permite que o serviço execute cargas de trabalho de dois ou várias regiões. Isso fornece redundância entre regiões, o que significa que as cargas de trabalho podem acessar qualquer região ao executar jobs. Ele também tem um mecanismo de failover para seu serviço. Por exemplo, se um dos endpoints regionais ficar inativo, seus são roteadas automaticamente para a outra região. Isso ajuda a evitar interrupções nas cargas de trabalho e nos jobs.
As configurações de região personalizadas também permitem controlar onde você está armazenando metadados e onde expor os endpoints do Hive Metastore. Isso pode melhorar o desempenho ao processar cargas de trabalho.
Considerações
As considerações a seguir se aplicam aos serviços do Dataproc Metastore 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 somente leitura: 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 não puder ser alcançada, a gravação não será processada.
- Imutabilidade da configuração: depois de definida, a configuração da região não pode ser mudou.
- Somente pilha dos EUA: as regiões duplas personalizadas só oferecem suporte à pilha
US
e são ao limite dos EUA.
Criar um serviço de região personalizada
Para configurar uma região personalizada, escolha duas regiões adjacentes ao criar sua serviço. Essa combinação pode ser duas regiões de leitura/gravação ou uma leitura/gravação e uma região somente leitura.
Console
No console do Google Cloud, acesse o Metastore do Dataproc página.
Na barra de navegação, clique em +Criar.
A caixa de diálogo Criar serviço de metastore é aberta.
Selecione Metastore do Dataproc 2.
Na seção Preço e capacidade, selecione Enterprise Plus - Dual region.
No campo Nome do serviço, insira um nome exclusivo para o serviço.
Em Local dos dados, selecione Estados Unidos (continente).
A seção Regiões personalizadas é exibida.
Em Regiões personalizadas, selecione uma região de Leitura/gravação e uma de Somente leitura.
Para as demais opções de configuração de serviço, use os padrões fornecidos.
Para criar e iniciar o serviço, clique em Enviar.
Seu novo serviço de metastore aparece no Metastore do Dataproc página. O status exibido será Creating 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 Dataproc Metastore com regiões personalizadas:
execute o seguinte comando CLI gcloud gcloud beta metastore services create
kubectl.
gcloud beta metastore services create SERVICE \ --read-write-regions
Substitua:
SERVICE
: o nome do serviço do metastore do Dataproc.READ_WRITE_REGIONS
: uma região de leitura e gravação compatível que faz parte da configuração da região personalizada.READ_ONLY_REGIONS
: uma região somente leitura compatível que faz parte da configuração da região personalizada.