Nesta página, mostramos como configurar seu Google Cloud projeto para se preparar para uma migração gerenciada do metastore do Dataproc.
Antes de começar
Entenda como funciona a migração gerenciada.
Configure ou tenha acesso aos seguintes serviços:
- Um metastore do Dataproc configurado com o Spanner tipo de banco de dados.
Uma instância de banco de dados do Cloud SQL para MySQL configurada com IP particular. Para a instância do Cloud SQL, verifique o seguinte:
A instância do Cloud SQL está configurada com uma rede VPC que usa as sub-redes necessárias.
A instância do Cloud SQL usa um esquema de banco de dados que é compatível com a versão do Hive Metastore executada no serviço do metastore do Dataproc (para onde os dados estão sendo copiados).
A instância do Cloud SQL contém os usuários adequados para estabelecer a conectividade entre o Datastream e o metastore do Dataproc e entre o metastore do Dataproc e o Cloud SQL.
Papéis necessários
Para receber as permissões necessárias para criar um metastore do Dataproc e iniciar uma migração gerenciada, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para conceder acesso total a todos os recursos do Dataproc Metastore, incluindo a configuração de permissões do IAM:
administrador do Dataproc Metastore (
roles/metastore.admin) na conta de usuário ou conta de serviço do Dataproc Metastore -
Para conceder controle total dos recursos do Dataproc Metastore:
Editor do Dataproc Metastore (
roles/metastore.editor) na conta de usuário ou de serviço do Dataproc Metastore -
Para conceder permissão para iniciar uma migração:
administrador de migração (
roles/metastore.migrationAdmin) no agente de serviço do metastore do Dataproc no projeto de serviço
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Também é possível conseguir as permissões necessárias usando personalizados papéis ou outros predefinidos papéis.
Conceder papéis adicionais dependendo das configurações do projeto
Dependendo de como o projeto está configurado, talvez seja necessário adicionar os seguintes papéis. Exemplos de como conceder esses papéis às contas adequadas são mostrados na seção de pré-requisitos mais adiante nesta página.
- Conceda o papel de usuário da rede (
roles/compute.networkUser) ao agente de serviço do Dataproc Metastore e ao [agente de serviço de APIs do Google] no projeto de serviço. - Conceda o papel de administrador de rede (
roles/compute.networkAdmin) ao agente de serviço do Datastream no projeto host.
Se a instância do Cloud SQL estiver em um projeto diferente do projeto de serviço do metastore do Dataproc:
- Conceda o papel
roles/cloudsql.cliente o papelroles/cloudsql.instanceUserao agente de serviço do Dataproc Metastore no projeto da instância do Cloud SQL.
Se o bucket do Cloud Storage para o pipeline de captura de dados de mudança estiver em um projeto diferente do projeto de serviço do metastore do Dataproc:
- Verifique se o agente de serviço do Datastream tem as permissões necessárias para gravar no bucket. Normalmente, esses são os
roles/storage.objectViewer,roles/storage.objectCreatoreroles/storage.legacyBucketReaderpapéis.
Pré-requisitos para migração gerenciada
O metastore do Dataproc usa proxies e um pipeline de captura de dados alterados para facilitar a transferência de dados. É importante entender como eles funcionam antes de iniciar uma transferência.
Termos-chave
- Projeto de serviço: é o Google Cloud projeto em que você criou o serviço do metastore do Dataproc.
- Projeto host: é o Google Cloud projeto que contém suas redes VPC compartilhada. Um ou mais projetos de serviço podem ser vinculados ao projeto host para usar essas redes compartilhadas. Para mais informações, consulte VPC compartilhada.
- Ative a API Datastream no seu projeto de serviço.
Conceda o papel
roles/metastore.migrationAdminao agente de serviço do metastore do Dataproc no projeto de serviço.gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
Adicione as seguintes regras de firewall.
Para estabelecer uma conexão entre o metastore do Dataproc e a instância do Cloud SQL de IP particular.
Uma regra de firewall para permitir o tráfego da sondagem de verificação de integridade para o balanceador de carga de rede do proxy SOCKS5. Exemplo:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--allow=tcp:1080 --source-ranges=35.191.0.0/16,130.211.0.0/22
A porta
1080é onde o servidor proxy SOCKS5 está em execução.Uma regra de firewall para permitir o tráfego do balanceador de carga para o MIG do proxy SOCKS5. Exemplo:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
Uma regra de firewall para permitir o tráfego do anexo de serviço do Private Service Connect para o balanceador de carga. Exemplo:
gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
Uma regra de firewall para permitir que o Datastream use o intervalo de IP CIDR
/29para criar uma conexão por IP particular. Exemplo:gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
(Opcional) Adicionar papéis à VPC compartilhada
Siga estas etapas se você usar uma VPC compartilhada.
Para mais detalhes sobre uma VPC compartilhada, consulte Administradores de projetos de serviço.
Conceda o papel
roles/compute.networkUserao agente de serviço do metastore do Dataproc e ao agente de serviço de APIs do Google no projeto host.gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:service-SERVICE_ACCOUNT@gcp-sa-metastore.iam.gserviceaccount.com" gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkUser" --member "serviceAccount:SERVICE_PROJECT@cloudservices.gserviceaccount.com"
Conceda o papel
roles/compute.networkAdminao agente de serviço do Datastream no projeto host.gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
Se não for possível conceder a roles/compute.networkAdmin função, crie uma
função personalizada com as permissões listadas em Pré-requisitos da VPC compartilhada.
Essas permissões são necessárias no início da migração para estabelecer o peering entre a rede VPC no projeto host e o Datastream.
Esse papel pode ser removido assim que a migração for iniciada. Se você remover o papel antes da conclusão da migração, o metastore do Dataproc não poderá limpar o job de peering. Nesse caso, você precisa limpar o job.