本文档介绍了如何为 Dataflow 作业配置工作器虚拟机。
默认情况下,Dataflow 会为运行作业的 Worker 虚拟机选择机器类型,以及 Persistent Disk 的大小和类型。如需配置工作器虚拟机,请在创建作业时设置以下流水线选项。
机器类型
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 custom
N2 n2-custom
N2D n2d-custom
N4 n4-custom
E2 e2-custom
- vCPU。vCPU 的数量。
- MEMORY。内存(以 MB 为单位)。
如需启用扩展内存,请将 -ext
附加到机器类型。示例:n2-custom-6-3072
、n2-custom-2-32768-ext
。
如需详细了解有效的自定义机器类型,请参阅 Compute Engine 文档中的自定义机器类型。
磁盘类型
要使用的永久性磁盘的类型。
使用 Streaming Engine 时,请勿指定 Persistent Disk。
Java
设置 workerDiskType
流水线选项。
Python
设置 worker_disk_type
流水线选项。
Go
设置 disk_type
流水线选项。
如需指定磁盘类型,请使用以下格式:compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE
。
替换以下内容:
- PROJECT_ID:您的项目 ID
- ZONE:Persistent Disk 所在的可用区,例如
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 服务创建的每个额外的 Persistent Disk 的大小;启动磁盘不受影响。
如果流处理作业不使用 Streaming Engine,您可以使用实验标志 streaming_boot_disk_size_gb
设置启动磁盘大小。例如,指定 --experiments=streaming_boot_disk_size_gb=80
以创建 80 GB 的启动磁盘。
如果流处理作业使用了 Streaming Engine,则默认磁盘大小为 30 GB。否则,默认值为 400 GB。