本文档介绍了如何为 Dataflow 作业配置工作器虚拟机。
默认情况下,Dataflow 会为运行作业的工作器虚拟机选择机器类型,以及永久性磁盘的大小和类型。如需配置工作器虚拟机,请在创建作业时设置以下流水线选项。
机器类型
Dataflow 在启动工作器虚拟机时使用的 Compute Engine 机器类型。您可以使用 x86 或 Arm 机器类型,包括自定义机器类型。
Java
设置 workerMachineType 流水线选项。
Python
设置 machine_type 流水线选项。
Go
设置 worker_machine_type 流水线选项。
对于 Arm,支持 Tau T2A 机器系列。如需详细了解如何使用 Arm 虚拟机,请参阅在 Dataflow 中使用 Arm 虚拟机。
Dataflow 服务等级协议不支持共享核心机器类型(例如
f1和g1系列工作器)。计费与机器类型系列无关。如需了解详情,请参阅 Dataflow 价格。
自定义机器类型
如需指定自定义机器类型,请使用以下格式:FAMILY-vCPU-MEMORY。替换以下内容:
- FAMILY。请使用以下某个值:
机器系列 值 N1 customN2 n2-customN2D n2d-customN4
对于流式作业,必须启用 Streaming Engine。
对于批量作业,必须启用 Dataflow Shuffle(默认)。n4-customE2 e2-custom - vCPU。vCPU 数量。
- MEMORY。内存(以 MB 为单位)。
如需启用扩展内存,请将 -ext 附加到机器类型。示例:n2-custom-6-3072、n2-custom-2-32768-ext。
如需详细了解有效的自定义机器类型,请参阅 Compute Engine 文档中的自定义机器类型。
磁盘类型
要使用的永久性磁盘的类型。
使用 Streaming Engine 或 N4 机器类型时,请勿指定永久性磁盘。
Java
设置 workerDiskType 流水线选项。
Python
设置 worker_disk_type 流水线选项。
Go
设置 disk_type 流水线选项。
如需指定磁盘类型,请使用以下格式:compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE。
替换以下内容:
- PROJECT_ID:您的项目 ID
- ZONE:永久性磁盘所在的可用区,例如
us-central1-b。 - DISK_TYPE:磁盘类型,即
pd-ssd或pd-standard
如需了解详情,请参阅适用于 diskTypes 的 Compute Engine API 参考页面。
磁盘大小
永久性磁盘大小。
Java
设置 diskSizeGb 流水线选项。
Python
设置 disk_size_gb 流水线选项。
Go
设置 disk_size_gb 流水线选项。
如果您设置此选项,请指定至少 30 GB 的磁盘大小,用于存储工作器启动映像和本地日志。
减小磁盘大小将减少可用的 shuffle I/O。不使用 Dataflow Shuffle 或 Streaming Engine 的 shuffle 受到限制的作业可能会导致运行时间和作业成本增加。
批处理作业
对于使用 Dataflow Shuffle 的批量作业,此选项设置工作器虚拟机启动磁盘的大小。对于不使用 Dataflow Shuffle 的批量作业,此选项设置用于存储重排数据的磁盘大小;启动磁盘大小不受影响。
如果批量作业使用 Dataflow Shuffle,则默认磁盘大小为 25 GB。否则,默认值为 250 GB。
流式作业
对于使用 Streaming Engine 的流式作业,此选项设置启动磁盘的大小。对于不使用 Streaming Engine 的流式作业,该选项设置由 Dataflow 服务创建的每个额外的永久性磁盘的大小;启动磁盘不受影响。
如果流式作业不使用 Streaming Engine,您可以使用实验标志 streaming_boot_disk_size_gb 设置启动磁盘大小。例如,指定 --experiments=streaming_boot_disk_size_gb=80 以创建 80 GB 的启动磁盘。
如果流式作业使用了 Streaming Engine,则默认磁盘大小为 30 GB。否则,默认值为 400 GB。
满足最低 CPU 要求的平台
如果您有对性能敏感且依赖于特定 CPU 功能的工作负载,可以为工作器虚拟机指定满足最低要求的 CPU 平台。此选项可确保 Dataflow 工作器使用符合或超过指定 CPU 代系的处理器。
如需指定最低要求的 CPU 平台,请设置 min_cpu_platform
实验性流水线选项。该值必须是所选 CPU 平台的准确名称,例如 AMD Milan 或 Intel Ice Lake。例如,指定 --experiments=min_cpu_platform='AMD Milan' 可将最低要求 CPU 平台设置为 AMD Milan。如需查看支持的最低 CPU 平台列表,请参阅 CPU 平台的可用性。
如需了解相关限制,请参阅指定最低要求 CPU 平台时的限制。
如需验证 Dataflow 工作器虚拟机是否已使用指定的最低 CPU 平台创建,请按以下方式检查作业的 Cloud Logging 条目:
- 在 Google Cloud 控制台中,前往 Cloud Logging 控制台。
使用以下过滤条件,并将示例 CPU 平台和 Dataflow 作业 ID 替换为您的作业的相关信息。
resource.type="gce_instance" protoPayload.request.minCpuPlatform="AMD Milan" "dataflow_job_id"查看生成的日志,确认 Dataflow 在虚拟机创建过程中成功指定了最低要求 CPU 平台。
使用 Cloud Storage FUSE 将 Cloud Storage 存储桶装载到 Dataflow 虚拟机
借助 Cloud Storage FUSE,您可以直接使用 Dataflow 虚拟机装载 Cloud Storage 存储桶,从而让软件能够像访问本地文件一样访问文件。借助此集成,您无需预先下载数据,从而简化工作负载的数据访问。如需了解详情,请参阅使用 Dataflow 和 Cloud Storage FUSE 处理机器学习数据。