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 em um único endpoint gRPC.
Para mais informações sobre como a federação funciona e suas limitações, consulte Sobre a federação de metadados.
Antes de começar
- Ative o Dataproc Metastore.
- Crie um serviço do Metastore do Dataproc que use o endpoint gRPC.
- Opcional: se você estiver usando uma origem do BigQuery para federação,
faça 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 como fonte de federação (pré-lançamento), faça o seguinte:
- Ative a API Dataplex no projeto que contém um lake do Dataplex 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:
Acessório de 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 os conjuntos de dados do BigQuery: Use um papel predefinido do BigQuery adequado ao seu caso de uso na conta de usuário ou na conta de serviço
- (Opcional) Para acessar os lagos do Dataplex (pré-lançamento): Use uma função predefinida do Dataplex adequada para seu caso de uso na conta de usuário ou na conta 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, buscar, 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 os conjuntos de dados do BigQuery:
For more information, see BigQuery permissions
na conta de usuário ou de serviço -
(Opcional) Para acessar os lagos do Dataplex (pré-lançamento):
For more information, see Dataplex permissions
na conta de usuário ou de conta 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 Identity and Access Management.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 as origens de federação e as limitações delas, consulte origens 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 da metastore Federated é aberta.
Na barra de menu da metastore Federated, 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.
Saiba mais em Convenção de nomenclatura de recursos.
Selecione o Local dos dados.
Crie o serviço de federação nas mesmas regiões das suas origens 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 origens. A primeira origem adicionada a essa lista é definida automaticamente como a metastore principal. É possível atualizar a ordem da origem após a criação.
Em Tipo de origem, selecione a origem da federação.
É possível escolher uma instância do Metastore do Dataproc, um projeto que contém um ou mais conjuntos de dados do BigQuery ou um lake do Dataplex (pré-lançamento).
No campo Origem, insira as seguintes informações:
Para um serviço do Metastore do Dataproc.
No campo Projeto selecionado, clique em Procurar e selecione o projeto que contém a Metastore do Dataproc que você quer usar como fonte.
Verifique se as origens do Metastore do Dataproc estão usando uma versão do Hive compatível com seu serviço de federação. A metastore principal precisa usar uma versão do Hive maior ou igual ao serviço de federação.
No menu suspenso Serviço de metastore, selecione a 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. Esta lista mostra o serviço do Dataproc Metastore de outras regiões, incluindo multirregiões.
Para ativar a federação em um serviço do metastore do Dataproc multirregional, selecione um serviço do metastore do Dataproc multirregional nesta 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 (pré-lançamento). No campo Projeto selecionado, clique em Procurar e selecione o ID do projeto que contém o Dataplex Lake.
Clique em Concluído.
Para criar e iniciar o serviço, clique em Enviar.
Agora é possível anexar seu 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 abaixo.
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 uma das suas metastores de back-end usadas para resolver colisões de nome de banco de dados. O serviço de federação consulta números de classificação mais baixa primeiro. Por exemplo, uma metastore de back-end com uma classificação de1
é consultada antes de uma 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 Metastore do Hive (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.
- Remover uma origem de um serviço de federação.
- Mude a ordem das origens contidas em um serviço de federação.
Excluir um serviço de federação permanentemente. Depois de excluir 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 da metastore Federated é 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 Dataproc Metastore, execute o comando abaixo.
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 uma das suas metastores de back-end usadas para resolver colisões de nome de banco de dados. O serviço de federação consulta números de classificação mais baixa primeiro. Por exemplo, uma metastore de back-end com uma classificação de1
é consultada antes de uma 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 Metastore do Hive (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 começar 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 comando gcloud Dataproc clusters create
a seguir.
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 Google Cloud do projeto 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 que você está usando 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 especificado, o cluster vai 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 repositório do seu metastore principal do Dataproc.