סוגי מכונות נתמכים

אשכולות Managed Service for Apache Spark מבוססים על מכונות Compute Engine. סוגי המכונות מגדירים את משאבי החומרה הווירטואליים שזמינים למכונה. ב-Compute Engine יש מכונות עם קונפיגורציה מוגדרת (predefined) וסוגי מכונות בהתאמה אישית. באשכולות של Managed Service for Apache Spark אפשר להשתמש גם בסוגים מוגדרים מראש וגם בסוגים בהתאמה אישית, גם לצומתי מאסטר וגם לצומתי עובד.

אשכולות של Managed Service for Apache Spark תומכים בסוגי המכונות הבאים עם קונפיגורציה מוגדרת מראש של Compute Engine (הזמינות של סוגי המכונות משתנה בהתאם לאזור):

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

‫Managed Service for Apache Spark תומך בסוגי מכונות בהתאמה אישית מהסדרות N1, ‏ N2, ‏ N2D, ‏ E2, ‏ N4 ו-N4D.

סוגי מכונות בהתאמה אישית מתאימים במיוחד לעומסי העבודה הבאים:

  • עומסי עבודה (workloads) שלא מתאימים לסוגי המכונות עם הקונפיגורציה המוגדרת מראש.
  • עומסי עבודה שדורשים יותר כוח עיבוד או יותר זיכרון, אבל לא זקוקים לכל השדרוגים שמספקת הרמה הבאה של סוג המכונה.

לדוגמה, אם יש לכם עומס עבודה שדורש יותר כוח עיבוד מזה שמספק מכונה מסוג n1-standard-4, אבל השלב הבא, מכונה מסוג n1-standard-8, מספק יותר מדי קיבולת. בעזרת סוגי מכונות בהתאמה אישית, אתם יכולים ליצור אשכולות של Managed Service for Apache Spark עם צומתי מאסטר ו/או צומתי עובד בטווח הביניים, עם 6 מעבדים וירטואליים וזיכרון בנפח 25GB.

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

סוגי מכונות בהתאמה אישית משתמשים במפרט machine type מיוחד, וכפופים למגבלות. לדוגמה, המפרט של סוג מכונה בהתאמה אישית למכונה וירטואלית בהתאמה אישית עם 6 מעבדי CPU וירטואליים וזיכרון בנפח 22.5GB הוא custom-6-23040.

המספרים במפרט של סוג המכונה תואמים למספר המעבדים הווירטואליים (vCPUs) במכונה (6) ולנפח הזיכרון (23040). נפח הזיכרון מחושב על ידי הכפלת נפח הזיכרון בג'יגה-בייט ב-1024 (ראו הצגת הזיכרון ב-GB או ב-MB). בדוגמה הזו, 22.5 (GB) מוכפל ב-1024: 22.5 * 1024 = 23040.

כשיוצרים אשכול, מציינים את סוג המכונה בהתאמה אישית. כשיוצרים אשכול, אפשר להגדיר את סוג המכונה לצומתי המאסטר, לצומתי העובדים או לשניהם. אם מגדירים את שניהם, צומת המאסטר יכול להשתמש בסוג מכונה בהתאמה אישית ששונה מסוג המכונה בהתאמה אישית שמשמש את ה-workers. סוג המכונה שמשמש את ה-workers המשניים נקבע לפי ההגדרות של ה-workers הראשיים, ואי אפשר להגדיר אותו בנפרד (ראו Workers משניים – מכונות וירטואליות שניתנות להפסקה לפני הזמן ומכונות וירטואליות שלא ניתנות להפסקה לפני הזמן).

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

התמחור של סוגי מכונות בהתאמה אישית מבוסס על המשאבים שבהם משתמשים במכונה בהתאמה אישית. התמחור של Managed Service for Apache Spark מתווסף לעלות של משאבי המחשוב, ומבוסס על המספר הכולל של המעבדים הווירטואליים (vCPUs) שמשמשים באשכול.

יצירת אשכול עם סוג מכונה ספציפי

מסוףGoogle Cloud

  • פותחים את הדף Create cluster.
  • בקטע Worker configuration, בוחרים את משפחת המכונות, הסדרה והסוג.
  • כברירת מחדל, ההגדרות של צומת ה-driver (הראשי) זהות להגדרות של ה-primary worker. בקטע Additional configuration, אפשר לערוך את Driver node כדי לבטל את הסימון של התיבה Default driver node to the same as primary worker, ואז לציין את ההגדרות של צומת הדרייבר.
  • פקודת ה-CLI של gcloud

    מריצים את הפקודה gcloud dataproc clusters create עם הדגלים הבאים כדי ליצור אשכול Managed Service for Apache Spark עם סוגי מכונות של מאסטר ו/או וורקר:

    • הדגל --master-machine-type machine-type מאפשר להגדיר את סוג המכונה המוגדר מראש או סוג המכונה בהתאמה אישית שמשמש את המכונה הווירטואלית הראשית באשכול (או את המכונות הראשיות אם יוצרים אשכול HA).
    • הדגל --worker-machine-type custom-machine-type מאפשר להגדיר את סוג המכונה המוגדר מראש או סוג המכונה בהתאמה אישית שמשמש את מכונות ה-VM של ה-worker באשכול.

    דוגמה:

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-6-23040 /
        --worker-machine-type custom-6-23040 /
        other args
    
    אחרי שהאשכול של Managed Service for Apache Spark מתחיל, פרטי האשכול מוצגים בחלון הטרמינל. לפניכם רשימה חלקית של מאפייני אשכול שמוצגים בחלון הטרמינל:
    ...
    properties:
      distcp:mapreduce.map.java.opts: -Xmx1638m
      distcp:mapreduce.map.memory.mb: '2048'
      distcp:mapreduce.reduce.java.opts: -Xmx4915m
      distcp:mapreduce.reduce.memory.mb: '6144'
      mapred:mapreduce.map.cpu.vcores: '1'
      mapred:mapreduce.map.java.opts: -Xmx1638m
    ...
    

    API

    כדי ליצור אשכול עם סוגי מכונות בהתאמה אישית, מגדירים את machineTypeUri ב-masterConfig ו/או ב-workerConfig InstanceGroupConfig בבקשת ה-API של cluster.create.

    דוגמה:

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "test-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "n1-highmem-4",
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        }
      }
    }
    

    יצירת אשכול עם סוג מכונה בהתאמה אישית עם זיכרון מורחב

    ב-Managed Service for Apache Spark אפשר להשתמש בסוגי מכונות בהתאמה אישית עם זיכרון מורחב מעבר למגבלה של 6.5GB לכל vCPU (ראו התמחור של זיכרון מורחב).

    מסוףGoogle Cloud

  • פותחים את הדף Create cluster ב-Managed Service for Apache Spark.
  • בקטע Worker configuration, בוחרים את משפחת המכונות, הסדרה והסוג.
  • כברירת מחדל, ההגדרות של צומת ה-driver (הראשי) זהות להגדרות של ה-primary worker. בקטע Additional configuration, אפשר לערוך את Driver node כדי לבטל את הסימון של התיבה Default driver node to the same as primary worker, ואז לציין את ההגדרות של צומת הדרייבר.
  • ‫CLI של gcloud

    כדי ליצור אשכול משורת הפקודה של gcloud עם מעבדי CPU בהתאמה אישית עם זיכרון מורחב, מוסיפים את הסיומת -ext לדגלים ‑‑master-machine-type ו/או ‑‑worker-machine-type.

    דוגמה

    הדוגמה הבאה של שורת הפקודה ב-gcloud יוצרת אשכול Managed Service for Apache Spark עם מעבד אחד וזיכרון בנפח 50GB‏ (50 * 1024 = 51200) בכל צומת:

    gcloud dataproc clusters create test-cluster /
        --master-machine-type custom-1-51200-ext /
        --worker-machine-type custom-1-51200-ext /
        other args
    

    API

    קטע הקוד הבא ב-JSON של <code.instancegroupconfig< code="" dir="ltr" translate="no"></code.instancegroupconfig<>, מתוך בקשת clusters.create ב-API בארכיטקטורת REST של Dataproc, מציין מעבד אחד וזיכרון בנפח 50GB‏ (50 * 1024 = 51200) בכל צומת:

    ...
        "masterConfig": {
          "numInstances": 1,
          "machineTypeUri": "custom-1-51200-ext",
        ...
        },
        "workerConfig": {
          "numInstances": 2,
          "machineTypeUri": "custom-1-51200-ext",
         ...
    ...
    

    סוגי מכונות ARM

    ב-Managed Service for Apache Spark אפשר ליצור אשכול עם צמתים שמשתמשים בסוגי מכונות ARM, כמו סוג המכונה C4A.

    דרישות ומגבלות:

    • התמונה של Managed Service for Apache Spark צריכה להיות תואמת לערכת השבבים של ARM. התמונות של Managed Service for Apache Spark בגרסאות 2.1-ubuntu20-arm,‏ 2.2-ubuntu22-arm ו-2.3-ubuntu22-arm (והסיומת -arm בגרסאות מאוחרות יותר) תואמות לערכת השבבים ARM. תמונות שתואמות ל-ARM לא תומכות בהרבה רכיבים אופציונליים ורכיבים של פעולות אתחול, כפי שמצוין בדפי גרסאות ההפצה של התמונות.
    • צריך לציין תמונה אחת לאשכול, ולכן הצמתים הראשיים, צומתי העובדים וצומתי העובדים המשניים צריכים להשתמש בסוג מכונת ARM שתואם לתמונת ה-ARM שנבחרה ב-Managed Service for Apache Spark.
    • תכונות של Managed Service for Apache Spark שלא תואמות לסוגי מכונות ARM לא זמינות (לדוגמה, כונני SSD מקומיים לא נתמכים בסוגי מכונות C4A).
    • תמונות ARM תומכות רק ברכיבים שמותקנים מראש ובקבוצה מוגבלת של רכיבים אופציונליים. אין תמיכה ברכיבים אופציונליים אחרים ובכל פעולות האתחול.
    • ‫Lightning Engine עם Native Query Execution‏ (NQE) נתמך במכונות מסוג ARM כשמשתמשים בתמונות 2.3-ubuntu22-arm.

    יצירת אשכול עם סוג מכונה של ARM

    המסוף

    כדי ליצור אשכול של Managed Service for Apache Spark שמשתמש בסוג מכונה של ARM:

    1. פותחים את הדף Create cluster ב-Managed Service for Apache Spark.
    2. בקטע Worker configuration, בוחרים את משפחת המכונות, הסדרה והסוג.
    3. כברירת מחדל, ההגדרות של צומת ה-driver (הראשי) זהות להגדרות של ה-primary worker. בקטע Additional configuration, אפשר לערוך את Driver node כדי לבטל את הסימון של התיבה Default driver node to the same as primary worker, ואז לציין את ההגדרות של צומת הדרייבר.

    gcloud

    כדי ליצור אשכול Managed Service for Apache Spark שמשתמש בסוג מכונה של ARM, מריצים את הפקודה gcloud הבאה באופן מקומי בחלון הטרמינל או ב-Cloud Shell. בדוגמה הזו מצוינים קובץ האימג' 2.1-ubuntu20-arm וסוג המכונה c4a-standard-4 ARM.

    gcloud dataproc clusters create cluster-name \
        --region=REGION \
        --image-version=2.1-ubuntu20-arm \
        --master-machine-type=c4a-standard-4 \
        --worker-machine-type=c4a-standard-4
    

    הערות:

    API

    הבקשה הבאה לדוגמה ל-API בארכיטקטורת REST של Dataproc‏ ([clusters.create](/managed-spark/docs/reference/rest/v1/projects.regions.clusters/create)) יוצרת אשכול שמשתמש בסוג המכונה `c4a-standard-4` ARM.

    POST /v1/projects/my-project-id/regions/is-central1/clusters/
    {
      "projectId": "my-project-id",
      "clusterName": "sample-cluster",
      "config": {
        "configBucket": "",
        "gceClusterConfig": {
          "subnetworkUri": "default",
          "zoneUri": "us-central1-a"
        },
        "masterConfig": {
          "numInstances": 1,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
          }
        },
        "workerConfig": {
          "numInstances": 2,
          **"machineTypeUri": "c4a-standard-4"**,
          "diskConfig": {
            "bootDiskSizeGb": 500,
            "numLocalSsds": 0
          }
        },
        "softwareConfig": {
          "imageVersion": "2.1-ubuntu20-arm"
        }
      }
    }
    

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