O serviço Metastore do Dataproc fornece acesso de cliente aos metadados do metastore armazenados usando um protocolo de endpoint.
Escolha o protocolo de endpoint para o serviço Metastore do Dataproc de acordo com suas preferências de comunicação. É possível escolher entre o Apache Thrift ou o gRPC.
O Thrift é o protocolo de endpoint legado e, portanto, é a opção padrão. O gRPC é mais seguro e permite usar integrações federadas com outros produtos do Google Cloud.
Configuração de rede do gRPC
Você não precisa configurar a VPC compartilhada nem definir configurações de rede para serviços baseados em gRPC, já que o endpoint gRPC pode ser acessado de qualquer VPC. A exceção ocorre quando o projeto que contém o serviço está em um perímetro de serviço do VPC-SC. Nesse caso, o endpoint pode ser alcançado de qualquer VPC pertencente a projetos no perímetro.
Escolher o protocolo de endpoint para um serviço novo e atual do metastore do Dataproc
Escolha o protocolo de endpoint do seu serviço do metastore do Dataproc ao criá-lo ou atualizá-lo usando o Console do Google Cloud.
Escolha o protocolo de endpoint para um novo serviço
Para escolher o protocolo de endpoint para um novo serviço, faça o seguinte:
Console
No console, abra a página do metastore do Dataproc:
Na parte superior da página Metastore do Dataproc, clique no botão Criar. A página Criar serviço é aberta.
Configure o serviço como quiser.
Em Endpoint protocol, selecione Thrift ou gRPC. O Thrift é o protocolo de endpoint padrão.
Clique em Enviar.
gcloud
Execute o seguinte comando
gcloud beta metastore services create
:gcloud beta metastore services create SERVICE \ --endpoint-protocol=ENDPOINT_PROTOCOL ; default="thrift"
Substitua:
SERVICE
: um nome para o novo serviçoENDPOINT_PROTOCOL
: o protocolo a ser usado para o endpoint do serviço do metastore. É possível especificarthrift
ougrpc
.
Verifique se a criação foi bem-sucedida.
Escolher o protocolo de endpoint para um serviço atual
Para escolher o protocolo de endpoint para um serviço atual, faça o seguinte:
Console
No console, abra a página do metastore do Dataproc:
Na página Metastore do Dataproc, clique no nome do serviço que você quer atualizar. A página Detalhes do serviço desse serviço é aberta.
Na guia Configuração, clique no botão Editar. A página Editar serviço é aberta.
Na seção Protocolo de endpoint, atualize sua seleção entre Thrift ou gRPC.
Clique no botão Enviar para atualizar o serviço.
gcloud
Execute o seguinte comando
gcloud beta metastore services update
:gcloud beta metastore services update SERVICE \ --endpoint-protocol=ENDPOINT_PROTOCOL
Substitua:
SERVICE
: o nome do serviço;ENDPOINT_PROTOCOL
: o protocolo a ser usado para o endpoint do serviço do metastore. É possível especificarthrift
ougrpc
.
Verifique se a atualização foi concluída.
Após escolher o protocolo de endpoint
Para serviços ativados para gRPC, o acesso aos metadados armazenados é protegido pelas permissões do IAM em bancos de dados e tabelas. Os papéis são:
roles/metastore.metadataViewer
: acesso somente leitura a metadados e políticas de IAM de metadadosroles/metastore.metadataEditor
: acesso de leitura/gravação aos metadados e acesso somente leitura às políticas do IAM de metadadosroles/metastore.metadataOwner
: acesso de leitura/gravação aos metadados e acesso de leitura/gravação às políticas do IAM de metadados
Defina a política do IAM para conceder acesso aos recursos. Use
setIamPolicy
e getIamPolicies
para conceder permissões metastore.databases
e
metastore.tables
.
Definir política de IAM para conceder papéis de metadados
As instruções a seguir demonstram como conceder papéis de metadados no nível do banco de dados e da tabela.
gcloud
Para acesso no nível do banco de dados:
Execute o seguinte comando
gcloud metastore services databases
para conceder papéis de metadados no nível do banco de dados:gcloud beta metastore services databases add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID DATABASE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"
Para acesso em nível de tabela:
Execute o seguinte comando
gcloud metastore services databases tables
para conceder papéis de metadados no nível da tabela:gcloud beta metastore services databases tables add-iam-policy-binding --project PROJECT --location LOCATION --service SERVICE_ID --database DATABASE_ID TABLE_ID --role roles/metastore.metadataViewer --member="EMAIL_ID"