In diesem Dokument wird beschrieben, wie Sie die Worker-VMs für einen Dataflow-Job konfigurieren.
Standardmäßig wählt Dataflow den Maschinentyp für die Worker-VMs aus, auf denen Ihr Job ausgeführt wird, sowie die Größe und den Typ des nichtflüchtigen Speichers. Wenn Sie die Worker-VMs konfigurieren möchten, legen Sie beim Erstellen des Jobs die folgenden Pipelineoptionen fest.
Maschinentyp
Der Compute Engine-Maschinentyp, den Dataflow beim Starten von Worker-VMs verwendet. Sie können x86- oder Arm-Maschinentypen verwenden, einschließlich benutzerdefinierter Maschinentypen.
Java
Legen Sie die Pipelineoption workerMachineType fest.
Python
Legen Sie die Pipelineoption machine_type fest.
Go
Legen Sie die Pipelineoption worker_machine_type fest.
Für Arm werden die Maschinenserien Tau T2A und C4A unterstützt. Weitere Informationen zur Verwendung von Arm-VMs finden Sie unter Arm-VMs in Dataflow verwenden.
x86-VMs werden automatisch unterstützt.
Maschinentypen mit gemeinsam genutztem Kern (z. B.
f1-micro,g1-small,e2-micro,e2-small, unde2-medium) werden für Dataflow Jobs nicht empfohlen und im Rahmen des Dataflow Service Level Agreements nicht unterstützt.Die Abrechnung erfolgt unabhängig von der Maschinentypfamilie. Weitere Informationen finden Sie unter Dataflow – Preise.
Bei den Maschinentypen
f1-microundg1-smallrechnet Dataflow so ab, als hätten sie 1 vCPU. Bei den Maschinentypene2-micro,e2-smallunde2-mediumrechnet Dataflow so ab, als hätten sie 2 vCPUs. Diese Preise werden auch dann berechnet, wenn Maschinentypen mit gemeinsam genutztem Kern weniger als die in Rechnung gestellte Anzahl an vCPUs an nachhaltiger CPU-Zeit bieten.
Benutzerdefinierte Maschinentypen
Geben Sie einen benutzerdefinierten Maschinentyp im folgenden Format an:
FAMILY-vCPU-MEMORY. Ersetzen Sie Folgendes:
- FAMILY. Verwenden Sie einen der folgenden Werte:
Maschinenserie Wert N1 customN2 n2-customN2D n2d-customN4
Bei Streamingjobs muss Streaming Engine aktiviert sein.
Bei Batchjobs muss Dataflow Shuffle aktiviert sein (Standard).n4-customE2 e2-custom - vCPU. Die Anzahl der vCPUs.
- MEMORY. ARBEITSSPEICHER. Der Arbeitsspeicher in MB.
Wenn Sie
erweiterten Arbeitsspeicheraktivieren möchten,
hängen Sie -ext an den Maschinentyp an. Beispiele: n2-custom-6-3072, n2-custom-2-32768-ext.
Weitere Informationen zu gültigen benutzerdefinierten Maschinentypen finden Sie unter Benutzerdefinierte Maschinentypen in der Compute Engine-Dokumentation.
Laufwerkstyp
Der Typ des nichtflüchtigen Speichers, der verwendet werden soll.
Geben Sie keinen nichtflüchtigen Speicher an, wenn Sie entweder Streaming Engine oder den Maschinentyp N4 verwenden.
Java
Legen Sie die Pipelineoption workerDiskType fest.
Python
Legen Sie die Pipelineoption worker_disk_type fest.
Go
Legen Sie die Pipelineoption disk_type fest.
Geben Sie den Laufwerkstyp im folgenden Format an:
compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.
Ersetzen Sie Folgendes:
- PROJECT_ID: Ihre Projekt-ID.
- ZONE: die Zone für den nichtflüchtigen Speicher, z. B.
us-central1-b - DISK_TYPE: der Laufwerkstyp, entweder
pd-ssdoderpd-standard.
Weitere Informationen finden Sie auf der Referenzseite der Compute Engine API für diskTypes.
Laufwerksgröße
Die Größe des nichtflüchtigen Speichers.
Java
Legen Sie die Pipelineoption diskSizeGb fest.
Python
Legen Sie die Pipelineoption disk_size_gb fest.
Go
Legen Sie die Pipelineoption disk_size_gb fest.
Wenn Sie diese Option festlegen, geben Sie mindestens 30 GB an, um das Bootimage des Workers und die lokalen Logs zu berücksichtigen.
Bei einer geringeren Laufwerkgröße wird die verfügbare Shuffle-E/A reduziert. An Shuffle gebundene Jobs, die nicht mit Dataflow Shuffle oder Streaming Engine arbeiten, können sich die Laufzeit und die Jobkosten erhöhen.
Batch jobs
Bei Batchjobs, die Dataflow Shuffle verwenden, legt diese Option die Größe des Bootlaufwerks einer Worker-VM fest. Bei Batchjobs, die Dataflow Shuffle nicht verwenden, legt diese Option die Größe der Laufwerke fest, die zum Speichern von Zufallsdaten verwendet werden. Die Größe des Bootlaufwerks ist davon nicht betroffen.
Wenn ein Batchjob Dataflow Shuffle verwendet, beträgt die Standardgröße des Laufwerks 25 GB. Andernfalls beträgt sie 250 GB.
Streaming jobs
Wenn ein Streamingjob Streaming Engine verwendet, wird mit dieser Option die Größe der Bootlaufwerke festgelegt. Bei Streamingjobs ohne Streaming Engine wird mit dieser Option die Größe jedes zusätzlichen nichtflüchtigen Speichers festgelegt, der vom Dataflow-Dienst erstellt wird. Das Bootlaufwerk ist nicht betroffen.
Wenn ein Streamingjob Streaming Engine nicht verwendet, können Sie die Größe des Bootlaufwerks mit dem Experiments-Flag streaming_boot_disk_size_gb festlegen. Geben Sie beispielsweise --experiments=streaming_boot_disk_size_gb=80 an, um Bootlaufwerke mit 80 GB zu erstellen.
Wenn ein Streamingjob Streaming Engine verwendet, beträgt die Standardgröße des Laufwerks 30 GB. Andernfalls beträgt sie 400 GB.
Mindest-CPU-Plattform
Wenn Sie leistungsempfindliche Arbeitslasten haben, die von bestimmten CPU-Funktionen abhängen, können Sie eine Mindest-CPU-Plattform für Worker-VMs angeben. Mit dieser Option wird sichergestellt, dass Dataflow-Worker einen Prozessor verwenden, der die angegebene CPU-Generation erfüllt oder übertrifft.
Legen Sie die min_cpu_platform
experimentelle Pipelineoption fest, um die Mindest-CPU-Plattform anzugeben.
Der Wert muss der genaue Name der ausgewählten CPU-Plattform sein, z. B. AMD Milan oder Intel Ice Lake. Geben Sie beispielsweise
--experiments=min_cpu_platform='AMD Milan' an, um die Mindest-CPU-Plattform auf
AMD Milan festzulegen. Eine Liste der unterstützten Mindest-CPU-Plattformen finden Sie unter
Verfügbarkeit von CPU-Plattformen.
Informationen zu Einschränkungen finden Sie unter
Einschränkungen beim Festlegen einer Mindest-CPU-Plattform.
So prüfen Sie, ob die Dataflow-Worker-VMs mit der angegebenen Mindest-CPU-Plattform erstellt wurden: Überprüfen Sie dazu die Cloud Logging-Einträge für den Job wie folgt:
- Rufen Sie in der Google Cloud Console die Cloud Logging-Konsole auf.
Verwenden Sie den folgenden Filter und ersetzen Sie die Beispiel-CPU-Plattform und die Dataflow-Job-ID durch die Informationen für Ihren Job.
resource.type="gce_instance" protoPayload.request.minCpuPlatform="AMD Milan" "dataflow_job_id"Prüfen Sie die resultierenden Logs, um zu bestätigen, dass Dataflow die Mindest-CPU-Plattform während der VM-Erstellung erfolgreich angegeben hat.
Cloud Storage-Buckets mit Cloud Storage FUSE auf Dataflow-VMs bereitstellen
Mit Cloud Storage FUSE können Sie Ihre Cloud Storage-Buckets direkt mit Dataflow-VMs bereitstellen, sodass Software auf Dateien zugreifen kann, als wären sie lokal. Durch diese Integration müssen Daten nicht mehr vorab heruntergeladen werden, was den Datenzugriff für Ihre Arbeitslasten optimiert. Weitere Informationen finden Sie unter ML-Daten mit Dataflow und Cloud Storage FUSE verarbeiten.