Cette page explique comment utiliser Cloud Storage FUSE avec Dataflow pour traiter des ensembles de données pour des tâches de machine learning (ML).
Lorsque vous travaillez sur des tâches de ML, Dataflow peut être utilisé pour traiter de grands ensembles de données. Toutefois, certaines bibliothèques logicielles courantes utilisées pour le ML, comme OpenCV, ont des exigences concernant les fichiers d'entrée. Ils nécessitent souvent d'accéder aux fichiers comme s'ils étaient stockés sur le disque dur d'un ordinateur local, plutôt que dans un stockage cloud. Cette exigence crée des difficultés et des retards. Pour résoudre ce problème, les pipelines peuvent utiliser des connecteurs d'E/S spéciaux pour l'entrée ou télécharger des fichiers sur les machines virtuelles (VM) Dataflow avant le traitement. Ces solutions sont souvent inefficaces.
Cloud Storage FUSE permet d'éviter ces solutions inefficaces. Cloud Storage FUSE vous permet d'installer vos buckets Cloud Storage sur les VM Dataflow. Les fichiers Cloud Storage apparaissent alors comme s'ils étaient des fichiers locaux. Le logiciel de ML peut donc y accéder directement sans avoir à les télécharger au préalable.
Avantages
L'utilisation de Cloud Storage FUSE pour les tâches de ML offre les avantages suivants :
- Les fichiers d'entrée hébergés sur Cloud Storage sont accessibles dans la VM Dataflow à l'aide de la sémantique du système de fichiers local.
- Comme les données sont accessibles à la demande, il n'est pas nécessaire de télécharger les fichiers d'entrée au préalable.
Compatibilité et limites
- Pour utiliser Cloud Storage FUSE avec Dataflow, vous devez configurer les VM de nœud de calcul avec des adresses IP externes afin qu'elles répondent aux exigences d'accès à Internet.
Spécifier les buckets à utiliser avec Cloud Storage FUSE
Pour spécifier un bucket Cloud Storage à installer sur une VM, utilisez l'indicateur --experiments
. Pour spécifier plusieurs buckets, utilisez un point-virgule (;
) comme délimiteur entre les noms de buckets.
Le format est le suivant :
--experiments="gcsfuse_buckets=CONFIG"
Remplacez les éléments suivants :
CONFIG
: liste d'entrées Cloud Storage séparées par des points-virgules, où chaque entrée est l'une des suivantes :BUCKET_NAME
: nom d'un bucket Cloud Storage. Exemple :dataflow-samples
Si vous omettez le mode du bucket, il est traité comme étant en lecture seule.BUCKET_NAME:MODE
: nom d'un bucket Cloud Storage et son mode associé, oùMODE
estro
(lecture seule) ourw
(lecture et écriture).Exemple :
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
Dans cet exemple, la spécification du mode garantit les éléments suivants :
gs://read-bucket1
est installé en mode lecture seule.gs://read-bucket2
est installé en mode lecture seule.gs://write-bucket1
est installé en mode lecture/écriture.
Le code du pipeline Beam peut accéder à ces buckets à l'adresse
/var/opt/google/gcs/BUCKET_NAME
.