Procesar datos de aprendizaje automático con Dataflow y Cloud Storage FUSE

En esta página se describe cómo usar Cloud Storage FUSE con Dataflow para procesar conjuntos de datos para tareas de aprendizaje automático.

Cuando se trabaja con tareas de aprendizaje automático, Dataflow se puede usar para procesar grandes conjuntos de datos. Sin embargo, algunas bibliotecas de software comunes que se usan en el aprendizaje automático, como OpenCV, tienen requisitos para los archivos de entrada. A menudo, requieren que se acceda a los archivos como si estuvieran almacenados en la unidad de disco duro de un ordenador local, en lugar de en un almacenamiento basado en la nube. Este requisito genera dificultades y retrasos. Como solución, las canalizaciones pueden usar conectores de E/especiales para la entrada o descargar archivos en las máquinas virtuales (VMs) de Dataflow antes del procesamiento. Estas soluciones suelen ser ineficientes.

Cloud Storage FUSE ofrece una forma de evitar estas soluciones ineficientes. Cloud Storage FUSE te permite montar tus segmentos de Cloud Storage en las VMs de Dataflow. De esta forma, los archivos de Cloud Storage se muestran como si fueran archivos locales. Por lo tanto, el software de aprendizaje automático puede acceder a ellos directamente sin necesidad de descargarlos previamente.

Ventajas

Usar Cloud Storage FUSE para tareas de aprendizaje automático ofrece las siguientes ventajas:

  • Se puede acceder a los archivos de entrada alojados en Cloud Storage en la VM de Dataflow mediante la semántica del sistema de archivos local.
  • Como se accede a los datos bajo demanda, no es necesario descargar los archivos de entrada previamente.

Compatibilidad y limitaciones

  • Para usar Cloud Storage FUSE con Dataflow, debes configurar las VMs de trabajador con direcciones IP externas para que cumplan los requisitos de acceso a Internet.

Especificar los segmentos que se van a usar con Cloud Storage FUSE

Para especificar un segmento de Cloud Storage que se va a montar en una VM, usa la marca --experiments. Para especificar varios segmentos, usa un punto y coma (;) como delimitador entre los nombres de los segmentos.

El formato es el siguiente:

--experiments="gcsfuse_buckets=CONFIG"

Haz los cambios siguientes:

  • CONFIG: lista delimitada por punto y coma de entradas de Cloud Storage, donde cada entrada es una de las siguientes:

    1. BUCKET_NAME: nombre de un segmento de Cloud Storage. Por ejemplo, dataflow-samples. Si omite el modo del segmento, el segmento se tratará como de solo lectura.

    2. BUCKET_NAME:MODE: nombre de un segmento de Cloud Storage y su modo asociado, donde MODE es ro (solo lectura) o rw (lectura y escritura).

      Por ejemplo:

      --experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
      

      En este ejemplo, al especificar el modo se asegura lo siguiente:

      • gs://read-bucket1 está montado en modo de solo lectura.
      • gs://read-bucket2 está montado en modo de solo lectura.
      • gs://write-bucket1 se ha montado en modo de lectura y escritura.

    El código de la canalización de Beam puede acceder a estos contenedores en /var/opt/google/gcs/BUCKET_NAME.