הגדרת מכונות וירטואליות של עובדים ב-Dataflow

במאמר הזה מוסבר איך להגדיר את מכונות ה-VM של העובדים עבור עבודת Dataflow.

כברירת מחדל, Dataflow בוחר את סוג המכונה למכונות ה-VM של העובדים שמריצות את העבודה, וגם את הגודל והסוג של דיסק האחסון המתמיד. כדי להגדיר את מכונות ה-VM של העובדים, מגדירים את אפשרויות הצינור הבאות כשיוצרים את המשימה.

סוג המכונה

סוג המכונה ב-Compute Engine שבה Dataflow משתמשת כשמפעילים מכונות וירטואליות של עובדים. אפשר להשתמש בסוגי מכונות x86 או Arm, כולל סוגי מכונות מותאמים אישית.

Java

מגדירים את האפשרות workerMachineType של צינור עיבוד הנתונים.

Python

מגדירים את האפשרות machine_type של צינור עיבוד הנתונים.

Go

מגדירים את האפשרות worker_machine_type של צינור עיבוד הנתונים.

  • ב-Arm, יש תמיכה בסדרת המכונות Tau T2A. מידע נוסף על שימוש במכונות וירטואליות של Arm זמין במאמר שימוש במכונות וירטואליות של Arm ב-Dataflow.

  • לא מומלץ להשתמש בסוגי מכונות עם ליבות משותפות (לדוגמה, f1-micro, ‏ g1-small, ‏ e2-micro,‏ e2-small ו-e2-medium) לעבודות Dataflow, והם לא נתמכים במסגרת הסכם רמת השירות של Dataflow.

  • החיוב לא תלוי במשפחת סוגי המכונות. מידע נוסף מפורט במאמר בנושא תמחור של Dataflow.

  • עבור סוגי המכונות f1-micro ו-g1-small, החיוב ב-Dataflow הוא כאילו יש להן vCPU אחד, ועבור סוגי המכונות e2-micro,‏ e2-small ו-e2-medium, החיוב ב-Dataflow הוא כאילו יש להן 2‏ vCPU. החיוב על השימוש בסוגי המכונות האלה מתבצע גם אם הן מספקות פחות מ-vCPU של זמן שימוש רציף במעבד (CPU) שחויב.

סוגי מכונות בהתאמה אישית

כדי לציין סוג מכונה בהתאמה אישית, צריך להשתמש בפורמט הבא: FAMILY-vCPU-MEMORY. מחליפים את מה שכתוב בשדות הבאים:

  • FAMILY. משתמשים באחד מהערכים הבאים:
    סדרת מכונותערך
    N1custom
    N2n2-custom
    N2Dn2d-custom
    ‫N4

    לגבי עבודות סטרימינג, צריך להפעיל את מנוע הסטרימינג.
    למשימות אצווה, צריך להפעיל את ערבוב נתונים ב-Dataflow (ברירת מחדל).
    n4-custom
    E2e2-custom
  • vCPU. מספר יחידות ה-vCPU.
  • MEMORY. הזיכרון, ב-MB.

כדי להפעיל זיכרון מורחב, מוסיפים את -ext לסוג המכונה. דוגמאות: n2-custom-6-3072, n2-custom-2-32768-ext.

מידע נוסף על סוגי מכונות מותאמות אישית זמין במאמר סוגי מכונות מותאמות אישית במסמכי העזרה של Compute Engine.

סוג הדיסק

סוג הדיסק לאחסון מתמיד שבו רוצים להשתמש.

כשמשתמשים ב-Streaming Engine או בסוג המכונה N4, לא צריך לציין Persistent Disk.

Java

מגדירים את האפשרות workerDiskType של צינור עיבוד הנתונים.

Python

מגדירים את האפשרות worker_disk_type של צינור עיבוד הנתונים.

Go

מגדירים את האפשרות disk_type של צינור עיבוד הנתונים.

כדי לציין את סוג הדיסק, משתמשים בפורמט הבא: compute.googleapis.com/projects/PROJECT_ID/zones/ZONE/diskTypes/DISK_TYPE.

מחליפים את מה שכתוב בשדות הבאים:

  • PROJECT_ID: מזהה הפרויקט
  • ZONE: האזור של ה-Persistent Disk, לדוגמה us-central1-b
  • DISK_TYPE: סוג הדיסק, pd-ssd או pd-standard

מידע נוסף מופיע בדף ההפניה של Compute Engine API בנושא diskTypes.

גודל כונן

גודל ה-Persistent Disk.

Java

מגדירים את האפשרות diskSizeGb של צינור עיבוד הנתונים.

Python

מגדירים את האפשרות disk_size_gb של צינור עיבוד הנתונים.

Go

מגדירים את האפשרות disk_size_gb של צינור עיבוד הנתונים.

אם בוחרים באפשרות הזו, צריך לציין לפחות 30 GB כדי להביא בחשבון את קובץ האימג' לאתחול של העובד ואת הרישומים המקומיים.

הקטנת גודל הדיסק מקטינה את קצב העברת הנתונים הזמין של פעולת ה-Shuffle. עבודות שמוגבלות לערבוב (shuffle) ולא נעשה בהן שימוש בארגון נתונים של Dataflow או במנוע סטרימינג, עלולות להוביל להגדלת זמן הריצה ולעלות העבודה.

משימות באצווה

עבור משימות אצווה באמצעות ארגון נתונים של Dataflow, האפשרות הזו מגדירה את הגודל של דיסק האתחול של worker VM. עבור משימות אצווה שלא משתמשות בארגון נתונים של Dataflow, האפשרות הזו מגדירה את גודל הדיסקים שמשמשים לאחסון נתונים שעברו ערבוב. גודל דיסק האתחול לא מושפע.

אם משימה באצווה משתמשת בארגון נתונים של Dataflow, גודל הדיסק שמוגדר כברירת מחדל הוא 25 GB. אחרת, ברירת המחדל היא 250 GB.

משרות בתחום הסטרימינג

לגבי משימות סטרימינג באמצעות Streaming Engine, האפשרות הזו מגדירה את הגודל של דיסקי האתחול. במשימות של סטרימינג שלא משתמשות ב-Streaming Engine, האפשרות הזו מגדירה את הגודל של כל דיסק אחסון מתמיד (persistent disk) נוסף שנוצר על ידי שירות Dataflow. דיסק האתחול לא מושפע.

אם עבודת סטרימינג לא משתמשת ב-Streaming Engine, אפשר להגדיר את גודל דיסק האתחול באמצעות דגל הניסוי streaming_boot_disk_size_gb. לדוגמה, מציינים --experiments=streaming_boot_disk_size_gb=80 כדי ליצור דיסקים לאתחול בגודל 80GB.

אם עבודת סטרימינג משתמשת ב-Streaming Engine, גודל הדיסק שמוגדר כברירת מחדל הוא 30 GB. אחרת, ברירת המחדל היא 400 GB.

פלטפורמת מעבד מינימלית

אם יש לכם עומסי עבודה שרגישים לביצועים ותלויים בתכונות ספציפיות של CPU, אתם יכולים לציין פלטפורמת CPU מינימלית למכונות וירטואליות של עובדים. האפשרות הזו מבטיחה שעובדי Dataflow ישתמשו במעבד שעומד בדרישות של דור ה-CPU שצוין או עולה עליהן.

כדי לציין את פלטפורמת ה-CPU המינימלית, מגדירים את min_cpu_platform אפשרות הצינור הניסיוני. הערך צריך להיות השם המדויק של פלטפורמת ה-CPU שנבחרה, כמו AMD Milan או Intel Ice Lake. לדוגמה, כדי להגדיר את פלטפורמת ה-CPU המינימלית ל-AMD Milan, מציינים את הערך --experiments=min_cpu_platform='AMD Milan'. רשימה של פלטפורמות CPU נתמכות זמינה במאמר זמינות של פלטפורמות CPU. מידע על מגבלות זמין במאמר בנושא מגבלות כשמציינים פלטפורמת CPU מינימלית.

כדי לוודא שמכונות וירטואליות של עובדי Dataflow נוצרות עם פלטפורמת המינימום של מעבד שצוינה, בודקים את הרשומות ב-Cloud Logging של המשימה באופן הבא:

  1. נכנסים למסוף Cloud Logging במסוף Google Cloud .
  2. משתמשים במסנן הבא ומחליפים את פלטפורמת ה-CPU לדוגמה ואת מזהה משימת Dataflow במידע של המשימה שלכם.

    resource.type="gce_instance"
    protoPayload.request.minCpuPlatform="AMD Milan"
    "dataflow_job_id"
    
  3. בודקים את היומנים שנוצרו כדי לוודא ש-Dataflow ציין בהצלחה את פלטפורמת המעבד המינימלית במהלך תהליך יצירת המכונה הווירטואלית.

שימוש ב-Cloud Storage FUSE כדי לטעון את הקטגוריות של Cloud Storage במכונות וירטואליות של Dataflow

‫Cloud Storage FUSE מאפשר לכם לטעון את הקטגוריות של Cloud Storage ישירות במכונות וירטואליות של Dataflow, כך שהתוכנה יכולה לגשת לקבצים כאילו הם מקומיים. השילוב הזה מבטל את הצורך בהורדה מראש של נתונים, ומייעל את הגישה לנתונים עבור עומסי העבודה שלכם. מידע נוסף זמין במאמר בנושא עיבוד נתונים של למידת מכונה באמצעות Dataflow ו-Cloud Storage FUSE.

המאמרים הבאים