Requisitos previos para la migración administrada

En esta página, se muestra cómo configurar tu proyecto Google Cloud para prepararte para una migración administrada de Dataproc Metastore.

Antes de comenzar

  • Comprende cómo funciona la migración administrada.

  • Configura los siguientes servicios o ten acceso a ellos:

    • 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 el caso de la instancia de Cloud SQL, asegúrate de que se cumplan las siguientes condiciones:

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

      • La instancia de Cloud SQL usa un esquema de base de datos que es compatible con la versión de Hive Metastore que se ejecuta en el servicio de Dataproc Metastore (en el que 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.

Funciones requeridas

Para obtener los permisos que necesitas para crear un metastore de Dataproc y comenzar una migración administrada, pídele a tu administrador que te otorgue los siguientes roles de IAM:

  • Para otorgar acceso completo a todos los recursos de Dataproc Metastore, incluido el establecimiento de permisos de IAM, haz lo siguiente: Administrador de Dataproc Metastore (roles/metastore.admin) en la cuenta de usuario o la cuenta de servicio de Dataproc Metastore
  • Para otorgar control total de los recursos de Dataproc Metastore, haz lo siguiente: Editor de Dataproc Metastore (roles/metastore.editor) en la cuenta de usuario o la cuenta de servicio de Dataproc Metastore
  • Para otorgar permiso para iniciar una migración, haz lo siguiente: Administrador de migraciones (roles/metastore.migrationAdmin) en el agente de servicio de Dataproc Metastore en el proyecto de servicio

Para obtener más información sobre cómo otorgar roles, consulta Administra el acceso a proyectos, carpetas y organizaciones.

También puedes obtener los permisos necesarios a través de roles personalizados o cualquier otro rol predefinido.

Otorga roles adicionales según la configuración de tu proyecto

Según cómo esté configurado tu proyecto, es posible que debas agregar los siguientes roles adicionales. En la sección de requisitos previos que se encuentra más adelante en esta página, se muestran ejemplos de cómo otorgar estos roles a las cuentas correspondientes.

  • Otorga el rol de 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.
  • Otorga el rol de administrador de red (roles/compute.networkAdmin) al agente de servicio de Datastream en el proyecto host.

Si tu instancia de Cloud SQL se encuentra en un proyecto diferente al del servicio de Dataproc Metastore, haz lo siguiente:

  • Otorga 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 bucket de Cloud Storage para la canalización de captura de datos de cambios está en un proyecto diferente al de tu 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 bucket. Por lo general, estas son las funciones de roles/storage.objectViewer, roles/storage.objectCreator y roles/storage.legacyBucketReader.

Requisitos previos para la migración administrada

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

Términos clave

  • Proyecto de servicio: Un proyecto de servicio es el proyecto Google Cloud en el que creaste tu servicio de Dataproc Metastore.
  • Proyecto host: Un proyecto host es el proyecto Google Cloud que contiene tus redes de VPC compartida. Se pueden vincular uno o más proyectos de servicio a tu proyecto host para usar estas redes compartidas. Para obtener más información, consulta VPC compartida.
  1. Habilita la API de Datastream en tu proyecto de servicio.
  2. Otorga 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. Agrega las siguientes reglas de firewall.

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

    • Una regla de firewall para permitir el tráfico de la sonda de verificación de estado al balanceador de cargas 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 firewall para permitir el tráfico del balanceador de cargas al MIG del 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 del adjunto del servicio de Private Service Connect al balanceador de cargas. 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 firewall para permitir que Datastream use el rango de IP de CIDR /29 para crear una conexión de 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) Agrega roles a la VPC compartida

Sigue estos pasos si usas una VPC compartida.

Para obtener más detalles sobre la VPC compartida, consulta Administradores de proyectos de servicio.

  1. Otorga 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. Otorga 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 otorgar el rol roles/compute.networkAdmin, crea un rol personalizado con los permisos que se indican en Requisitos previos de la VPC compartida.

  • Estos permisos son necesarios al inicio de la migración para establecer el intercambio de tráfico entre la red de VPC en el 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 vinculación. En este caso, debes limpiar el trabajo por tu cuenta.

¿Qué sigue?