Requisitos previos para la migración gestionada

En esta página se explica cómo configurar tu proyecto de Google Cloud para preparar una migración gestionada de Dataproc Metastore.

Antes de empezar

  • Consulta cómo funciona la migración gestionada.

  • Configurar o tener acceso a los siguientes servicios:

    • Un Dataproc Metastore configurado con el tipo de base de datos Spanner.
    • Una instancia de base de datos de Cloud SQL para MySQL configurada con IP privada. En la instancia de Cloud SQL, comprueba lo siguiente:

      • La instancia de Cloud SQL está configurada con una red de VPC que usa las subredes necesarias.

      • La instancia de Cloud SQL usa un esquema de base de datos compatible con la versión de Hive Metastore que se ejecuta en el servicio Dataproc Metastore (donde se copian los datos).

      • La instancia de Cloud SQL contiene los usuarios adecuados para establecer la conectividad entre Datastream y Dataproc Metastore, y entre Dataproc Metastore y Cloud SQL.

Roles obligatorios

Para obtener los permisos que necesitas para crear un metastore de Dataproc e iniciar una migración gestionada, pide a tu administrador que te conceda los siguientes roles de gestión de identidades y accesos:

  • Para conceder acceso completo a todos los recursos de Dataproc Metastore, incluido el ajuste de permisos de gestión de identidades y accesos, haz lo siguiente: Administrador de Dataproc Metastore (roles/metastore.admin) en la cuenta de usuario o de servicio de Dataproc Metastore
  • Para conceder control total sobre los recursos de Dataproc Metastore, haz lo siguiente: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o de servicio de Dataproc Metastore
  • Para conceder permiso para iniciar una migración, sigue estos pasos: Administrador de migraciones (roles/metastore.migrationAdmin) en el agente de servicio de Dataproc Metastore del proyecto de servicio

Para obtener más información sobre cómo conceder roles, consulta el artículo Gestionar el acceso a proyectos, carpetas y organizaciones.

También puedes conseguir los permisos necesarios a través de roles personalizados u otros roles predefinidos.

Concede roles adicionales en función de la configuración de tu proyecto

En función de cómo esté configurado tu proyecto, es posible que tengas que añadir los siguientes roles adicionales. En la sección Requisitos, que aparece más adelante en esta página, se muestran ejemplos de cómo conceder estos roles a las cuentas correspondientes.

  • Asigna el rol Usuario de red (roles/compute.networkUser) al agente de servicio de Dataproc Metastore y al [agente de servicio de las APIs de Google] en el proyecto de servicio.
  • Asigna el rol Administrador de redes (roles/compute.networkAdmin) al agente de servicio de Datastream en el proyecto host.

Si tu instancia de Cloud SQL está en un proyecto distinto al proyecto de servicio de Dataproc Metastore:

  • Asigna el rol roles/cloudsql.client y el rol roles/cloudsql.instanceUser al agente de servicio de Dataproc Metastore en el proyecto de la instancia de Cloud SQL.

Si el segmento de Cloud Storage de la canalización de captura de cambios de datos está en un proyecto distinto al proyecto de servicio de Dataproc Metastore, haz lo siguiente:

  • Asegúrate de que tu agente de servicio de Datastream tenga los permisos necesarios para escribir en el segmento. Normalmente, se trata de los roles roles/storage.objectViewer, roles/storage.objectCreator y roles/storage.legacyBucketReader.

Requisitos previos de la migración gestionada

Dataproc Metastore usa proxies y una canalización de captura de datos de cambios para facilitar la transferencia de datos. Es importante que sepas cómo funcionan antes de iniciar una transferencia.

Términos clave

  • Proyecto de servicio: es el proyecto en el que has creado tu servicio de Dataproc Metastore. Google Cloud
  • Proyecto host: es el proyecto que contiene tus redes de VPC compartidas. Google Cloud Se pueden vincular uno o varios proyectos de servicio a tu proyecto del host para usar estas redes compartidas. Para obtener más información, consulta VPC compartida.
  1. Habilita la API Datastream en tu proyecto de servicio.
  2. Asigna el rol roles/metastore.migrationAdmin al agente de servicio de Dataproc Metastore en tu proyecto de servicio.

    gcloud projects add-iam-policy-binding SERVICE_PROJECT --role "roles/metastore.migrationAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-metastore.iam.gserviceaccount.com"
    
  3. Añade las siguientes reglas de cortafuegos.

    Para establecer una conexión entre Dataproc Metastore y tu instancia de Cloud SQL con IP privada.

    • Una regla de cortafuegos para permitir el tráfico de la comprobación del estado de la sonda al balanceador de carga de red del proxy SOCKS5. Por ejemplo:

      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
      

      El puerto 1080 es donde se ejecuta el servidor proxy SOCKS5.

    • Una regla de cortafuegos para permitir el tráfico del balanceador de carga al MIG de proxy SOCKS5. Por ejemplo:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK--action=ALLOW --rules=all --source-ranges=PROXY_SUBNET_RANGE
      
    • Una regla de firewall para permitir el tráfico desde el archivo adjunto de servicio de Private Service Connect al balanceador de carga. Por ejemplo:

      gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --allow=tcp:1080 --source-ranges=NAT_SUBNET_RANGE
      

    Una regla de cortafuegos para permitir que Datastream use el intervalo de IPs CIDR /29 para crear una conexión IP privada. Por ejemplo:

    gcloud compute firewall-rules create RULE_NAME --direction=INGRESS --priority=1000 --network=CLOUD_SQL_NETWORK --action=ALLOW --rules=all --source-ranges=CIDR_RANGE
    

(Opcional) Añadir roles a VPC compartida

Sigue estos pasos si usas una VPC compartida.

Para obtener más información sobre las VPC compartidas, consulta Administradores de proyectos de servicio.

  1. Asigna el rol roles/compute.networkUser al agente de servicio de Dataproc Metastore y al agente de servicio de la API de Google en el proyecto 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"
    
  2. Asigna el rol roles/compute.networkAdmin al agente de servicio de Datastream en el proyecto host.

    gcloud projects add-iam-policy-binding HOST_PROJECT --role "roles/compute.networkAdmin" --member "serviceAccount:service-SERVICE_PROJECT@gcp-sa-datastream.iam.gserviceaccount.com"
    

Si no puedes conceder el rol roles/compute.networkAdmin, crea un rol personalizado con los permisos que se indican en los requisitos previos de la VPC compartida.

  • Estos permisos son necesarios al inicio de la migración para establecer una conexión entre la red de VPC del proyecto host y Datastream.

  • Este rol se puede quitar en cuanto se inicie la migración. Si quitas el rol antes de que se complete la migración, Dataproc Metastore no podrá limpiar el trabajo de peering. En este caso, debes limpiar el trabajo tú mismo.

Siguientes pasos