Esta página explica como criar um serviço de federação de metadados para 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 metastore do Dataproc.
- Crie um serviço Metastore do Dataproc que use o endpoint gRPC.
- Opcional: se você estiver usando uma fonte 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 para a federação (pré-lançamento), faça o seguinte:
- Ativar a API Dataplex na que contém um lake do Dataplex como fonte.
Papéis necessários
Para ter 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 conjuntos de dados do BigQuery: Use um papel predefinido do BigQuery apropriado para seu caso de uso na conta de usuário ou de serviço
- (Opcional) Para acessar lakes do Dataplex (pré-lançamento): Use um papel predefinido do Dataplex apropriado para 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 do 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 seguintes permissões são necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do 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 acessar conjuntos de dados do BigQuery:
For more information, see BigQuery permissions
na conta de usuário ou de serviço -
(Opcional) Para acessar lakes do Dataplex (pré-lançamento):
For more information, see Dataplex 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 IAM.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ê pode anexar o serviço de federação a um cluster do Dataproc.
Para saber mais sobre as fontes 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 do metastore federado será aberta.
Na barra de menus do metastore Federated, clique em Create.
A página Criar serviço de federação é aberta.
No campo Nome da federação, digite um nome exclusivo para seu 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 do seu Origens do metastore do Dataproc.
Selecione a Versão do Hive.
Para adicionar uma fonte ao serviço de federação, clique em Adicionar uma fonte.
É possível adicionar uma ou mais origens. A primeira fonte que você adicionar list é definido automaticamente como seu metastore principal. É possível atualizar ordenação de 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 Source, digite 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. Seu metastore principal deve usar uma versão do Hive que seja 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.
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.
Atualizar um serviço de federação
As instruções a seguir mostram como atualizar um serviço de federação. Você pode conclua as seguintes tarefas:
- Adicione uma origem a um serviço de federação.
- Remover uma fonte 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, quando os recursos são liberados.
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 de metastore Federated é aberta.
Na página de serviços federados do metastore, clique no nome do 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.
Anexar um cluster do Dataproc a um serviço de federação
As instruções a seguir mostram como criar um bucket do Dataproc cluster e anexar um endpoint do serviço de federação como o respectivo metastore.
Antes de iniciar estas instruções, conclua todas as etapas listadas em Antes começar e criar uma federação do Google Cloud.
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 do projeto do Google Cloud em que você está criando o cluster do Dataproc.LOCATION
: a região do cluster do Dataproc.IMAGE_VERSION
: o Dataproc. a versão de imagem 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 imagens 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.