Auf dieser Seite wird beschrieben, wie Sie Cloud Storage FUSE mit Dataflow verwenden, um Datasets für Aufgaben im Bereich des maschinellen Lernens (ML) zu verarbeiten.
Bei ML-Aufgaben kann Dataflow zur Verarbeitung großer Datasets verwendet werden. Einige gängige Softwarebibliotheken, die für maschinelles Lernen verwendet werden, z. B. OpenCV, haben jedoch Anforderungen an Eingabedateien. Häufig muss auf Dateien zugegriffen werden, als wären sie auf der Festplatte eines lokalen Computers gespeichert, und nicht in einem cloudbasierten Speicher. Diese Anforderung führt zu Schwierigkeiten und Verzögerungen. Als Lösung können Pipelines entweder spezielle I/O-Connectors für die Eingabe verwenden oder Dateien vor der Verarbeitung auf die Dataflow-VMs herunterladen. Diese Lösungen sind häufig ineffizient.
Cloud Storage FUSE bietet eine Möglichkeit, diese ineffizienten Lösungen zu vermeiden. Mit Cloud Storage FUSE können Sie Ihre Cloud Storage-Buckets auf den Dataflow-VMs bereitstellen. Dadurch werden die Dateien in Cloud Storage so angezeigt, als wären sie lokale Dateien. Die ML-Software kann daher direkt darauf zugreifen, ohne sie vorher herunterladen zu müssen.
Vorteile
Die Verwendung von Cloud Storage FUSE für ML-Aufgaben bietet die folgenden Vorteile:
- Auf Eingabedateien, die in Cloud Storage gehostet werden, kann in der Dataflow-VM mit der Semantik des lokalen Dateisystems zugegriffen werden.
- Da auf die Daten bei Bedarf zugegriffen wird, müssen die Eingabedateien nicht im Voraus heruntergeladen werden.
Unterstützung und Einschränkungen
- Wenn Sie Cloud Storage FUSE mit Dataflow verwenden möchten, müssen Sie Worker-VMs mit externen IP-Adressen konfigurieren, damit sie die Anforderungen für den Internetzugriff erfüllen.
Buckets für die Verwendung mit Cloud Storage FUSE angeben
Verwenden Sie das Flag --experiments
, um einen Cloud Storage-Bucket anzugeben, der auf einer VM bereitgestellt werden soll. Wenn Sie mehrere Buckets angeben möchten, verwenden Sie ein Semikolon (;
) als Trennzeichen zwischen den Bucket-Namen.
Das Format dafür ist:
--experiments="gcsfuse_buckets=CONFIG"
Ersetzen Sie Folgendes:
CONFIG
: Eine durch Semikolons getrennte Liste von Cloud Storage-Einträgen, wobei jeder Eintrag einer der folgenden ist:BUCKET_NAME
: Ein Cloud Storage-Bucket-Name. Beispiel:dataflow-samples
. Wenn Sie den Bucket-Modus weglassen, wird der Bucket als schreibgeschützt behandelt.BUCKET_NAME:MODE
: Ein Cloud Storage-Bucket-Name und der zugehörige Modus, wobeiMODE
entwederro
(schreibgeschützt) oderrw
(Lese-/Schreibzugriff) ist.Beispiel:
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
In diesem Beispiel wird durch die Angabe des Modus Folgendes sichergestellt:
gs://read-bucket1
ist im Lesemodus bereitgestellt.gs://read-bucket2
ist im Lesemodus bereitgestellt.gs://write-bucket1
ist im Lese-/Schreibmodus bereitgestellt.
Über den Beam-Pipelinecode kann unter
/var/opt/google/gcs/BUCKET_NAME
auf diese Buckets zugegriffen werden.