Nesta página, explicamos como criar um serviço de federação de metadados para o metastore do Dataproc. Um serviço de federação permite acessar metadados armazenados em várias fontes de um único endpoint gRPC.
Para mais informações sobre como a federação funciona e as limitações dela, consulte Sobre a federação de metadados.
Antes de começar
- Ative o metastore do Dataproc.
- Crie um serviço do Dataproc Metastore que use o endpoint gRPC.
- Opcional: se você estiver usando uma fonte do BigQuery para federação,
conclua o seguinte:
- Ative a API BigQuery no projeto que contém a origem do BigQuery.
- Ative a API Resource Manager.
- Opcional: se você estiver usando um lake do Dataplex Universal Catalog como fonte para
federação (prévia), conclua o seguinte:
- Ative a API Dataplex Universal Catalog no projeto que contém um lake do Dataplex Universal Catalog como fonte.
Papéis necessários
Para receber as permissões necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio de privilégio mínimo, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para acessar o serviço de federação:
Acessador da federação (
roles/metastore.federationAccessor
) na conta de usuário ou de serviço -
Para conceder controle total de todos os recursos do metastore do Dataproc:
Editor do metastore do Dataproc (
roles/metastore.editor
) na conta de usuário ou de serviço -
Para concluir operações de metadados em um metastore do Dataproc configurado com um serviço de federação:
Proprietário do metastore (
metastore.metadataEditor
) na conta de usuário ou de serviço -
Para criar um cluster do Dataproc:
Worker do Dataproc (
roles/dataproc.worker
) na conta de serviço da VM do Dataproc - (Opcional) Para acessar conjuntos de dados do BigQuery: Use um papel predefinido do BigQuery adequado ao seu caso de uso na conta de usuário ou de conta de serviço.
- (Opcional) Para acessar os lakes do Dataplex Universal Catalog (prévia): Use uma função predefinida do Dataplex Universal Catalog adequada ao seu caso de uso na conta de usuário ou de serviço.
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio de privilégio mínimo. Para conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio de privilégio mínimo:
-
Para criar um metastore do Dataproc:
metastore.services.create
na conta de usuário ou de serviço -
Para listar, receber, criar, atualizar e excluir um serviço de federação:
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list
na conta de usuário ou de serviço -
Para concluir operações de metadados em um metastore do Dataproc:
metastore.services.get, metastore.services.use, metastore.databases.create, metastore.databases.update, metastore.databases.deletemetastore.databases.get,metastore.databases.list, metastore.databases.getIamPolicy, metastore.tables.create, metastore.tables.update, metastore.tables.delete, metastore.tables.get, metastore.tables.list, metastore.tables.getIamPolicy
na conta de usuário ou de serviço -
(Opcional) Para adicionar um serviço multirregional à federação:
metastore.services.get
nas contas do metastore do Dataproc -
(Opcional) Para acessar conjuntos de dados do BigQuery:
For more information, see BigQuery permissions
na conta de usuário ou de serviço -
(Opcional) Para acessar os lakes do Dataplex Universal Catalog (prévia):
For more information, see Dataplex Universal Catalog permissions
na conta de usuário ou de serviço
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Para mais informações sobre papéis e permissões específicos do Dataproc Metastore, consulte Gerenciar o acesso ao Dataproc Metastore com o gerenciamento de identidade e acesso.Criar um serviço de federação
As instruções a seguir mostram como criar um serviço de federação e anexá-lo a uma origem. Depois de concluir essas etapas, você poderá anexar seu serviço de federação a um cluster do Dataproc.
Para saber mais sobre fontes de federação e limitações, consulte fontes de metadados.
Console
No console do Google Cloud , abra a página Metastore do Dataproc:
No menu de navegação do Dataproc, clique em Federação.
A página de serviços do metastore federado é aberta.
Na barra de menus da metastore Federada, clique em Criar.
A página Criar serviço de federação é aberta.
No campo Nome da federação, insira um nome exclusivo para o serviço.
Para mais informações, consulte Convenção de nomenclatura de recursos.
Selecione o Local dos dados.
Crie o serviço de federação nas mesmas regiões das fontes do Metastore do Dataproc.
Selecione a versão do Hive.
Para adicionar uma origem ao serviço de federação, clique em Adicionar uma origem.
É possível adicionar uma ou mais fontes. A primeira origem adicionada a essa lista é definida automaticamente como o metastore principal. É possível atualizar a ordem das fontes depois da criação.
Em Tipo de origem, selecione sua origem de federação.
É possível escolher uma instância do Dataproc Metastore, um projeto que contenha um ou mais conjuntos de dados do BigQuery ou um lake do Dataplex Universal Catalog (prévia).
No campo Origem, insira as seguintes informações:
Para um serviço do Dataproc Metastore.
No campo Projeto selecionado, clique em Procurar e selecione o projeto que contém o Metastore do Dataproc que você quer usar como fonte.
Verifique se as fontes do metastore do Dataproc estão usando uma versão do Hive compatível com o serviço de federação. O metastore principal precisa usar uma versão do Hive maior ou igual ao serviço de federação.
No menu suspenso Serviço metastore, selecione o metastore do Dataproc que você quer usar como origem.
(Opcional) Marque a caixa de seleção Mostrar serviços de metastore fora da minha região. Isso lista o serviço do metastore do Dataproc de outras regiões, incluindo multirregiões.
Para ativar a federação em um serviço multirregional do Dataproc Metastore, selecione um serviço multirregional do Dataproc Metastore na lista.
Para o BigQuery. No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o conjunto de dados do BigQuery.
Para o Dataplex Universal Catalog (prévia). No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o lake do Catálogo Universal do Dataplex.
Clique em Concluído.
Para criar e iniciar o serviço, clique em Enviar.
Agora é possível anexar o serviço de federação a um cluster do Dataproc.
CLI da gcloud
Para criar uma federação com o metastore do Dataproc, execute o comando a seguir.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Substitua:
FEDERATION
: o nome do serviço de federação do metastore do Dataproc.LOCATION
: a Google Cloud região em que a federação será criada.RANK
: um número de classificação para cada um dos seus metastores de back-end usados para resolver conflitos de nomes de banco de dados. O serviço de federação consulta primeiro os números de classificação mais baixa. Por exemplo, um metastore de back-end com uma classificação de1
é consultado antes de um metastore com uma classificação de2
. Esse valor precisa ser um número inteiro. Por exemplo,--backends 1=first_backend_metastore, 2=second_backend_metastore
.BACKEND_METASTORE
: o recurso relativo de cada metastore de back-end no seguinte formato:METASTORE_TYPE:METASTORE_NAME
. Para serviços do metastore do Dataproc, usedpms:SERVICE_ID
. OSERVICE_ID
pode ser encontrado no seguinte local:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: a versão do Hive Metastore (3.1.2 ou 2.3.6).
Atualizar um serviço de federação
As instruções a seguir mostram como atualizar um serviço de federação. Você pode concluir as seguintes tarefas:
- Adicione uma origem a um serviço de federação.
- Remova uma origem de um serviço de federação.
- Mude a ordem das fontes contidas em um serviço de federação.
Exclui um serviço de federação permanentemente. Depois que você exclui um serviço, todos os recursos dele são liberados.
Console
https://cloud.google.com/dataproc-metastore/docs/create-federation
No console do Google Cloud , abra a página Metastore do Dataproc:
No menu de navegação do Dataproc, clique em Federação.
A página de serviços do metastore federado é aberta.
Na página de serviços da metastore federada, clique no nome do serviço que você quer atualizar.
A página Detalhes do serviço é aberta.
Na barra de menus, clique em Editar.
A página Editar serviço é aberta.
Escolha os valores que você quer atualizar.
Para atualizar o serviço, clique em Enviar.
CLI da gcloud
Para atualizar uma federação com o metastore do Dataproc, execute o comando a seguir.
gcloud metastore federations update FEDERATATON \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION
: o nome do serviço de federação do metastore do Dataproc.LOCATION
: a Google Cloud região em que a federação será criada.RANK
: um número de classificação para cada um dos seus metastores de back-end usados para resolver conflitos de nomes de banco de dados. O serviço de federação consulta primeiro os números de classificação mais baixa. Por exemplo, um metastore de back-end com uma classificação de1
é consultado antes de um metastore com uma classificação de2
. Esse valor precisa ser um número inteiro. Por exemplo,--backends 2=first_backend_metastore, 2=second_backend_metastore
.BACKEND_METASTORE
: o recurso relativo de cada metastore de back-end no seguinte formato:METASTORE_TYPE:METASTORE_NAME
. Para serviços do metastore do Dataproc, usedpms:SERVICE_ID
. OSERVICE_ID
pode ser encontrado no seguinte local:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: a versão do Hive Metastore (3.1.2 ou 2.3.6).
Anexar um cluster do Dataproc a um serviço de federação
As instruções a seguir mostram como criar um cluster do Dataproc e anexar um endpoint de serviço de federação como metastore.
Antes de seguir estas instruções, conclua todas as etapas listadas em Antes de começar e crie um serviço de federação.
CLI da gcloud
Para criar um cluster do Dataproc e anexar um endpoint de federação,
execute o seguinte comando gcloud Dataproc clusters create
.
gcloud dataproc clusters create CLUSTER_NAME \ --region=LOCATION \ --project=PROJECT_ID \ --scopes=https://www.googleapis.com/auth/cloud-platform \ --image-version=IMAGE_VERSION \ --service-account=SERVICE_ACCOUNT \ --optional-components=DOCKER \ --initialization-actions=gs://metastore-init-actions/metastore-grpc-proxy/metastore-grpc-proxy.sh \ --metadata="proxy-uri=FEDERATION_URI,hive-version=FEDERATION_VERSION" \ --properties="hive:hive.metastore.uris=thrift://localhost:9083,hive:hive.metastore.warehouse.dir=WAREHOUSE_DIR"
Substitua:
CLUSTER_NAME
: o nome do novo cluster do Dataproc.PROJECT_ID
: o ID do projeto Google Cloud em que você está criando o cluster do Dataproc.LOCATION
: a região do cluster do Dataproc.IMAGE_VERSION
: a versão da imagem do Dataproc que você quer usar.Verifique se a imagem do Dataproc usada neste comando é compatível com a versão do Hive usada com seu serviço de federação. Para mais informações, consulte a Lista de versões de imagem do Dataproc.
SERVICE_ACCOUNT
opcional: a conta de serviço que você está usando para criar o cluster do Dataproc. Se não for especificada, o cluster usará a conta de serviço padrão do Compute Engine.FEDERATION_URI
: o URI do endpoint do seu serviço de federação.FEDERATION_VERSION
: a versão do Hive que seu serviço de federação está usando.WAREHOUSE_DIR
: o diretório do data warehouse do metastore principal do Dataproc.