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

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

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

סוג המכונה

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

Java

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

Python

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

המשך

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

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

  • יש תמיכה אוטומטית במכונות וירטואליות מסוג x86.

  • לא מומלץ להשתמש בסוגי מכונות עם ליבות משותפות (לדוגמה, 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 שחויבו על זמן שימוש רציף במעבד.

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

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

  • FAMILY. משתמשים באחד מהערכים הבאים:
    סדרת מכונותערך
    N1custom
    N2n2-custom
    N2Dn2d-custom
    n4-custom
    E2e2-custom
  • vCPU. מספר המעבדים הווירטואליים.
  • MEMORY. הזיכרון, ב-MB.

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

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

סוג הדיסק

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

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

Java

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

Python

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

המשך

מגדירים את האפשרות 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 או hyperdisk-balanced

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

הקצאת IOPS ותפוקה

כשמשתמשים בדיסקים מסוג Hyperdisk Balanced, אפשר להקצות IOPS ותפוקה בלי קשר לגודל הדיסק. כדי להקצות IOPS ו-Throughput, משתמשים באפשרויות הבאות של צינור עיבוד הנתונים:

Java

  • כדי להקצות IOPS, מגדירים את האפשרות diskProvisionedIOPS של צינור הנתונים.
  • כדי להקצות משאבים לפי התפוקה שנקבעה ב-MiB/s, מגדירים את diskProvisionedThroughput pipeline option.

Python

  • כדי להקצות IOPS, מגדירים את האפשרות disk_provisioned_iops של צינור הנתונים.
  • כדי להקצות נפח נתונים (throughput) ב-MiB/s, מגדירים את disk_provisioned_throughput_mibps pipeline option.

המשך

  • כדי להקצות IOPS, מגדירים את האפשרות disk_provisioned_iops של צינור הנתונים.
  • כדי להקצות משאבים לפי התפוקה שנקבעה ב-MiB/s, מגדירים את disk_provisioned_throughput_mibps pipeline option.

אם לא מגדירים את האפשרויות האלה, עבודות שמשתמשות בדיסקים מסוג hyperdisk-balanced מוגדרות כברירת מחדל לביצועים בסיסיים של 3,000 IOPS וקצב העברה של 140 MiB/s. מידע נוסף זמין במאמר About Hyperdisk Balanced (מידע על Hyperdisk Balanced) במאמרי העזרה של Compute Engine.

מגבלות

  • הקצאת IOPS וקצב העברת נתונים ל-Hyperdisk Balanced נתמכת בגרסאות 2.74.0 ואילך של Apache Beam SDK.

גודל כונן

גודל ה-Persistent Disk.

Java

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

Python

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

המשך

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

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

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

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

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

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

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

לגבי משימות סטרימינג באמצעות Streaming Engine, האפשרות הזו מגדירה את הגודל של דיסקי האתחול. במשימות של סטרימינג שלא משתמשות ב-Streaming Engine, האפשרות הזו מגדירה את הגודל של כל דיסק קשיח נוסף שנוצר על ידי שירות 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 experimental pipeline option. הערך צריך להיות השם המדויק של פלטפורמת ה-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.

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