本页面介绍了如何将 Cloud Storage FUSE 与 Dataflow 搭配使用,以处理机器学习 (ML) 任务的数据集。
在处理机器学习任务时,Dataflow 可用于处理大型数据集。不过,用于机器学习的一些常见软件库(如 OpenCV)具有输入文件要求。它们通常需要访问文件,就像文件存储在本地计算机的硬盘上一样,而不是从云端存储中访问。这项要求会造成困难和延迟。作为解决方案,流水线可以使用特殊 I/O 连接器进行输入,也可以在处理前将文件下载到 Dataflow 虚拟机 (VM) 上。这些解决方案通常效率不高。
Cloud Storage FUSE 提供了一种避免这些低效解决方案的方法。借助 Cloud Storage FUSE,您可以将 Cloud Storage 存储桶装载到 Dataflow 虚拟机。这样一来,Cloud Storage 中的文件就会显示为本地文件。因此,机器学习软件可以直接访问这些数据,而无需事先下载。
优势
使用 Cloud Storage FUSE 执行机器学习任务具有以下优势:
- 您可以使用本地文件系统语义在 Dataflow 虚拟机中访问托管在 Cloud Storage 上的输入文件。
- 由于数据是按需访问的,因此无需事先下载输入文件。
指定要与 Cloud Storage FUSE 搭配使用的存储桶
如需指定要装载到虚拟机的 Cloud Storage 存储桶,请使用 --experiments
标志。如需指定多个存储桶,请在存储桶名称之间使用分号分隔符 (;
)。
其格式如下所示:
--experiments="gcsfuse_buckets=CONFIG"
替换以下内容:
CONFIG
:以分号分隔的 Cloud Storage 条目列表,其中每个条目都是以下各项之一:BUCKET_NAME
:Cloud Storage 存储桶名称。 例如dataflow-samples
。如果您省略存储桶模式,则存储桶会视为只读存储桶。BUCKET_NAME:MODE
:Cloud Storage 存储桶名称及其关联的模式,其中MODE
为ro
(只读)或rw
(读写)。例如:
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"
在此示例中,指定模式可确保以下几点:
gs://read-bucket1
以只读模式装载。gs://read-bucket2
以只读模式装载。gs://write-bucket1
以读写模式装载。
Beam 流水线代码可在
/var/opt/google/gcs/BUCKET_NAME
访问这些存储桶。