Elaborare i dati di ML utilizzando Dataflow e Cloud Storage FUSE

Questa pagina descrive come utilizzare Cloud Storage FUSE con Dataflow per elaborare set di dati per attività di machine learning (ML).

Quando si lavora con attività di ML, Dataflow può essere utilizzato per l'elaborazione di set di dati di grandi dimensioni. Tuttavia, alcune librerie software comuni utilizzate per il machine learning, come OpenCV, hanno requisiti per i file di input. Spesso richiedono l'accesso ai file come se fossero archiviati sul disco rigido di un computer locale, anziché da uno spazio di archiviazione basato sul cloud. Questo requisito crea difficoltà e ritardi. Come soluzione, le pipeline possono utilizzare connettori I/O speciali per l'input o scaricare i file sulle macchine virtuali (VM) Dataflow prima dell'elaborazione. Queste soluzioni sono spesso inefficienti.

Cloud Storage FUSE offre un modo per evitare queste soluzioni inefficienti. Cloud Storage FUSE ti consente di montare i bucket Cloud Storage sulle VM Dataflow. In questo modo, i file in Cloud Storage vengono visualizzati come se fossero file locali. Di conseguenza, il software ML può accedervi direttamente senza doverli scaricare in anticipo.

Vantaggi

L'utilizzo di Cloud Storage FUSE per le attività di ML offre i seguenti vantaggi:

  • È possibile accedere ai file di input ospitati su Cloud Storage nella VM Dataflow utilizzando la semantica del file system locale.
  • Poiché i dati vengono consultati su richiesta, i file di input non devono essere scaricati in anticipo.

Supporto e limitazioni

  • Per utilizzare Cloud Storage FUSE con Dataflow, devi configurare le VM worker con indirizzi IP esterni in modo che soddisfino i requisiti di accesso a internet.

Specifica i bucket da utilizzare con Cloud Storage FUSE

Per specificare un bucket Cloud Storage da montare su una VM, utilizza il flag --experiments. Per specificare più bucket, utilizza un punto e virgola (;) come delimitatore tra i nomi dei bucket.

Il formato è il seguente:

--experiments="gcsfuse_buckets=CONFIG"

Sostituisci quanto segue:

  • CONFIG: un elenco delimitato da punto e virgola di voci di Cloud Storage, in cui ogni voce è una delle seguenti:

    1. BUCKET_NAME: il nome di un bucket Cloud Storage. Ad esempio, dataflow-samples. Se ometti la modalità bucket, il bucket viene trattato come di sola lettura.

    2. BUCKET_NAME:MODE: il nome di un bucket Cloud Storage e la relativa modalità associata, dove MODE è ro (sola lettura) o rw (lettura/scrittura).

      Ad esempio:

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

      In questo esempio, la specifica della modalità garantisce quanto segue:

      • gs://read-bucket1 è montato in modalità di sola lettura.
      • gs://read-bucket2 è montato in modalità di sola lettura.
      • gs://write-bucket1 è montato in modalità di lettura e scrittura.

    Il codice della pipeline Beam può accedere a questi bucket all'indirizzo /var/opt/google/gcs/BUCKET_NAME.