Esta página explica como criar um serviço de federação de metadados para o Dataproc Metastore. Um serviço de federação permite-lhe aceder a metadados armazenados em várias origens a partir de um único ponto final gRPC.
Para mais informações sobre como funciona a federação e as respetivas limitações, consulte o artigo Acerca da federação de metadados.
Antes de começar
- Ative o Dataproc Metastore.
- Crie um serviço Dataproc Metastore que use o ponto final gRPC.
- Opcional: se estiver a usar uma origem 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 estiver a usar um Dataplex Universal Catalog Lake como origem para a federação (pré-visualização), conclua o seguinte:
- Ative a API Dataplex no projeto que contém um lago do catálogo universal do Dataplex como origem.
Funções necessárias
Para receber as autorizações de que precisa para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do menor privilégio, peça ao seu administrador para lhe conceder as seguintes funções do IAM:
-
Para aceder ao serviço de federação:
Acesso à federação (
roles/metastore.federationAccessor
) na conta de utilizador ou na conta de serviço -
Para conceder controlo total de todos os recursos de Metastore do Dataproc:
Editor de Metastore do Dataproc (
roles/metastore.editor
) na conta de utilizador ou na conta de serviço -
Para concluir operações de metadados num Metastore do Dataproc configurado com um serviço de federação:
Proprietário do Metastore (
metastore.metadataEditor
) na conta de utilizador ou na conta de serviço -
Para criar um cluster do Dataproc:
Trabalhador do Dataproc (
roles/dataproc.worker
) na conta de serviço da VM do Dataproc - (Opcional) Para aceder a conjuntos de dados do BigQuery: Use uma função predefinida do BigQuery adequada para o seu exemplo de utilização na conta de utilizador ou na conta de serviço
- (Opcional) Para aceder aos lagos do catálogo universal do Dataplex (pré-visualização): Use uma função predefinida do catálogo universal do Dataplex adequada para o seu exemplo de utilização na conta de utilizador ou na conta de serviço
Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.
Estas funções predefinidas contêm as autorizações necessárias para criar um serviço de federação e anexar um cluster do Dataproc, seguindo o princípio do menor privilégio. Para ver as autorizações exatas que são necessárias, expanda a secção Autorizações necessárias:
Autorizações necessárias
São necessárias as seguintes autorizações para criar um serviço de federação e anexar um cluster do Dataproc, de acordo com o princípio do menor privilégio:
-
Para criar um Dataproc Metastore:
metastore.services.create
na conta de utilizador ou na conta de serviço -
Para listar, obter, criar, atualizar e eliminar um serviço de federação:
metastore.federations.create, metastore.federations.update, metastore.federations.delete, metastore.federations.get metastore.federations.list
na conta de utilizador ou na conta de serviço -
Para concluir operações de metadados num Dataproc Metastore:
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 utilizador ou na conta de serviço -
(Opcional) Para adicionar um serviço multirregional à federação:
metastore.services.get
nas contas do Dataproc Metastore -
(Opcional) Para aceder a conjuntos de dados do BigQuery:
For more information, see BigQuery permissions
na conta de utilizador ou na conta de serviço -
(Opcional) Para aceder aos lagos do catálogo universal do Dataplex (pré-visualização):
For more information, see Dataplex Universal Catalog permissions
na conta de utilizador ou na conta de serviço
Também pode conseguir estas autorizações com funções personalizadas ou outras funções predefinidas.
Para mais informações sobre as funções e as autorizações específicas do Dataproc Metastore, consulte o artigo Faça a gestão do acesso ao Dataproc Metastore com a gestão de identidades e acessos.Crie um serviço de federação
As instruções seguintes mostram como criar um serviço de federação e associá-lo a uma origem. Depois de concluir estes passos, pode anexar o seu serviço de federação a um cluster do Dataproc.
Para saber mais acerca das origens de federação e das respetivas limitações, consulte o artigo Origens de metadados.
Consola
Na Google Cloud consola, abra a página Dataproc Metastore:
No menu de navegação do Dataproc, clique em Federação.
É apresentada a página de serviços de metadados federados.
Na barra de menu do metadados Federated, clique em Criar.
É apresentada a página Criar serviço de federação.
No campo Nome da federação, introduza um nome exclusivo para o seu serviço.
Para mais informações, consulte o artigo Convenção de nomenclatura de recursos.
Selecione a Localização dos dados.
Certifique-se de que cria o serviço de federação nas mesmas regiões das suas origens do Dataproc Metastore.
Selecione a versão do Hive.
Para adicionar uma origem para o seu serviço de federação, clique em Adicionar uma origem.
Pode adicionar uma ou mais fontes. A primeira origem que adicionar a esta lista é automaticamente definida como o seu metadepósito principal. Pode atualizar a ordem das fontes após a criação.
Para o Tipo de origem, selecione a origem da federação.
Pode escolher uma instância do Dataproc Metastore, um projeto que contenha um ou mais conjuntos de dados do BigQuery ou um lake do catálogo universal do Dataplex (pré-visualização).
No campo Origem, introduza as seguintes informações:
Para um serviço de Dataproc Metastore.
No campo Projeto selecionado, clique em Procurar e selecione o projeto que contém o Dataproc Metastore que quer usar como origem.
Certifique-se de que as origens do Dataproc Metastore estão a usar uma versão do Hive compatível com o seu serviço de federação. O metastore principal tem de usar uma versão do Hive que seja superior ou igual ao seu serviço de federação.
No menu pendente Serviço Metastore, selecione o Dataproc Metastore que quer usar como origem.
(Opcional) Selecione a caixa de verificação Mostrar serviços do metastore fora da minha região. Esta lista o serviço Dataproc Metastore de outras regiões, incluindo várias regiões.
Para ativar a federação num serviço de Metastore do Dataproc multirregional, selecione um serviço de 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 catálogo universal do Dataplex (pré-visualização). 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, pode anexar o seu serviço de federação a um cluster do Dataproc.
CLI gcloud
Para criar uma federação com o Dataproc Metastore, execute o seguinte comando.
gcloud metastore federations create FEDERATION \ --location LOCATION \ --backends RANK=BACKEND_METASTORE \ --hive-metastore-version HIVE_VERSION
Substitua o seguinte:
FEDERATION
: o nome do serviço de federação do Dataproc Metastore.LOCATION
: a Google Cloud região para criar criar a federação.RANK
: um número de classificação para cada um dos seus metastores de back-end usados para resolver colisões de nomes de bases de dados. O serviço de federação consulta primeiro os números com uma classificação inferior. Por exemplo, é feita uma consulta a um metastore de back-end com uma classificação de1
antes de um metastore com uma classificação de2
. Este valor tem de 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 de Metastore do Dataproc, usedpms:SERVICE_ID
. Pode encontrar oSERVICE_ID
na seguinte localização:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: a versão do Hive Metastore (3.1.2 ou 2.3.6).
Atualize um serviço de federação
As instruções seguintes mostram como atualizar um serviço de federação. Pode concluir as seguintes tarefas:
- Adicione uma origem a um serviço de federação.
- Remova uma fonte de um serviço de federação.
- Altere a ordem das origens contidas num serviço de federação.
Elimine um serviço de federação permanentemente. Depois de eliminar um serviço, todos os respetivos recursos são libertados.
Consola
https://cloud.google.com/dataproc-metastore/docs/create-federation
Na Google Cloud consola, abra a página Dataproc Metastore:
No menu de navegação do Dataproc, clique em Federação.
É apresentada a página de serviços de metadados federados.
Na página de serviços de metadados federados, clique no nome do serviço que quer atualizar.
É apresentada a página Detalhes do serviço.
Na barra de menu, clique em Editar.
É apresentada a página Editar serviço.
Escolha os valores que quer atualizar.
Para atualizar o serviço, clique em Enviar.
CLI gcloud
Para atualizar uma federação com o Dataproc Metastore, execute o seguinte comando.
gcloud metastore federations update FEDERATATON \ --location=LOCATION \ --backends RANK1=BACKEND_METASTORE1,RANK2=BACKEND_METASTORE2
FEDERATION
: o nome do serviço de federação do Dataproc Metastore.LOCATION
: A Google Cloud região para criar criar a federação.RANK
: um número de classificação para cada um dos seus metastores de back-end usados para resolver colisões de nomes de bases de dados. O serviço de federação consulta primeiro os números com uma classificação inferior. Por exemplo, é feita uma consulta a um metastore de back-end com uma classificação de1
antes de um metastore com uma classificação de2
. Este valor tem de 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 de Metastore do Dataproc, usedpms:SERVICE_ID
. Pode encontrar oSERVICE_ID
na seguinte localização:projects/<project>/locations/<location>/services/<service-id>
.HIVE_VERSION
: a versão do Hive Metastore (3.1.2 ou 2.3.6).
Anexe um cluster do Dataproc a um serviço de federação
As instruções seguintes mostram como criar um cluster do Dataproc e anexar um endpoint do serviço de federação como o respetivo metastore.
Antes de começar estas instruções, conclua todos os passos indicados em Antes de começar e crie um serviço de federação.
CLI gcloud
Para criar um cluster do Dataproc e anexar um ponto final 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 o seguinte:
CLUSTER_NAME
: o nome do novo cluster do Dataproc.PROJECT_ID
: o Google Cloud ID do projeto no qual está a criar o cluster do Dataproc.LOCATION
: a região do seu cluster do Dataproc.IMAGE_VERSION
: a versão da imagem do Dataproc que quer usar.Certifique-se de que a imagem do Dataproc que está a usar neste comando é compatível com a versão do Hive usada com o 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 está a usar para criar o cluster do Dataproc. Se não for especificado, o cluster usa a sua conta de serviço predefinida do Compute Engine.FEDERATION_URI
: o URI do ponto final do seu serviço de federação.FEDERATION_VERSION
: a versão do Hive que o seu serviço de federação está a usar.WAREHOUSE_DIR
: o diretório do armazém do seu Dataproc Metastore principal.