יצירת אשכול באמצעות ה-CLI של gcloud

בדף הזה מוסבר איך משתמשים בכלי שורת הפקודה gcloud של Google Cloud CLI כדי ליצור אשכול של Managed Service for Apache Spark, להריץ משימת Apache Spark באשכול ולשנות את מספר ה-workers באשכול.

במאמרים הבאים מוסבר איך לבצע משימות זהות או דומות: מדריכים למתחילים באמצעות API Explorer,Google Cloud יצירת אשכול באמצעות מסוףGoogle Cloud ושימוש בספריות לקוח ביצירת אשכול באמצעות ספריות לקוח.

לפני שמתחילים

  1. נכנסים לחשבון Google Cloud . אנחנו ממליצים למשתמשים חדשים ב- Google Cloudליצור חשבון כדי שיוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. התקינו את ה-CLI של Google Cloud.

  3. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  4. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  5. יוצרים או בוחרים פרויקט ב- Google Cloud .

    התפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?
    • יוצרים פרויקט ב- Google Cloud :

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של הפרויקט ב- Google Cloud שאתם יוצרים.

    • בוחרים את הפרויקט שיצרתם ב- Google Cloud :

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  6. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  7. מוודאים שהחיוב מופעל בפרויקט ב- Google Cloud .

  8. מפעילים את Dataproc API, אם הוא עדיין לא מופעל:

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable dataproc.googleapis.com
  9. התקינו את ה-CLI של Google Cloud.

  10. אם אתם משתמשים בספק זהויות חיצוני (IdP), קודם אתם צריכים להיכנס ל-CLI של gcloud באמצעות המאגר המאוחד לניהול זהויות.

  11. כדי לאתחל את ה-CLI של gcloud, הריצו את הפקודה הבאה:

    gcloud init
  12. יוצרים או בוחרים פרויקט ב- Google Cloud .

    התפקידים שנדרשים כדי לבחור או ליצור פרויקט

    • בחירת פרויקט: כדי לבחור פרויקט לא נדרש תפקיד IAM ספציפי – אתם יכולים לבחור כל פרויקט שקיבלתם בו תפקיד.
    • יצירת פרויקט: כדי ליצור פרויקט, צריך את התפקיד "יצירת פרויקטים" (roles/resourcemanager.projectCreator), שכולל את ההרשאה resourcemanager.projects.create. איך מקצים תפקידים?
    • יוצרים פרויקט ב- Google Cloud :

      gcloud projects create PROJECT_ID

      מחליפים את PROJECT_ID בשם של הפרויקט ב- Google Cloud שאתם יוצרים.

    • בוחרים את הפרויקט שיצרתם ב- Google Cloud :

      gcloud config set project PROJECT_ID

      מחליפים את PROJECT_ID בשם הפרויקט ב- Google Cloud .

  13. מוודאים שיש את ההרשאות הנדרשות כדי להשלים את ההדרכה.

  14. מוודאים שהחיוב מופעל בפרויקט ב- Google Cloud .

  15. מפעילים את Dataproc API, אם הוא עדיין לא מופעל:

    התפקידים שנדרשים כדי להפעיל ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם אתם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד "בעלים" (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד "אדמין בממשק 'שימוש בשירות'" (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    gcloud services enable dataproc.googleapis.com

התפקידים הנדרשים

כדי להריץ את הדוגמאות שבדף הזה, צריך תפקידים מסוימים ב-IAM. בהתאם למדיניות הארגון, יכול להיות שהתפקידים האלה כבר הוקצו. כדי לבדוק את התפקידים שהוקצו, קראו את המאמר האם צריך להקצות תפקידים?.

להסבר על מתן תפקידים, קראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

תפקידי משתמשים

כדי לקבל את ההרשאות שדרושות ליצירת אשכול Managed Service for Apache Spark, בקשו מהאדמין להקצות לכם את התפקידים הבאים ב-IAM:

תפקיד של חשבון שירות

כדי לוודא שלחשבון השירות שמשמש כברירת מחדל ב-Compute Engine יש את ההרשאות שנדרשות ליצירת אשכול Managed Service for Apache Spark, צריך לבקש מהאדמין להקצות לחשבון השירות שמשמש כברירת מחדל ב-Compute Engine את תפקידי ה-IAM הבאים בפרויקט:

יצירת אשכול

כדי ליצור אשכול בשם example-cluster, מריצים את הפקודה הבאה של gcloud Managed Service for Apache Spark clusters create.

.
gcloud dataproc clusters create example-cluster --region=REGION

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

‫REGION: מציינים את האזור שבו יהיה האשכול.

שליחת משימה

כדי לשלוח משימת Spark לדוגמה שמחשבת ערך משוער של pi, מריצים את הפקודה הבאה: gcloud Managed Service for Apache Spark jobs submit spark:

gcloud dataproc jobs submit spark --cluster example-cluster \
    --region=REGION \
    --class org.apache.spark.examples.SparkPi \
    --jars file:///usr/lib/spark/examples/jars/spark-examples.jar -- 1000

הערות:

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

‫REGION: מציינים את אזור האשכול.

  • המשימה פועלת ב-example-cluster.
  • הקובץ class מכיל את השיטה הראשית של SparkPi, שמחשבת ערך משוער של האפליקציה pi.
  • קובץ ה-JAR מכיל את קוד המשימה. הערה: file:///usr/lib/spark/examples/jars/spark-examples.jar הוא קובץ JAR לדוגמה שמותקן מראש באשכול. במשימות ייעודיות, מציינים את קובץ ה-JAR ב-Cloud Storage (ראו שליחת משימה).

  • ‫1000 הוא פרמטר של משרה. הוא מציין את מספר המשימות (איטרציות) שהמשימה מבצעת כדי לחשב את הערך של pi.

הפלט הסופי של המשימה שפועלת מוצג בחלון הטרמינל:

Waiting for job output...
...
Pi is roughly 3.14118528
...
Job finished successfully.

עדכון אשכול

כדי לשנות את מספר ה-workers באשכול ל-5, מריצים את הפקודה הבאה:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 5

בפלט הפקודה מוצגים פרטי האשכול:

workerConfig:
...
  instanceNames:
  -   example-cluster-w-0
  -   example-cluster-w-1
  -   example-cluster-w-2
  -   example-cluster-w-3
  -   example-cluster-w-4
  numInstances: 5
statusHistory:
...
-   detail: Add 3 workers.

כדי להקטין את מספר הצמתים העובדים לערך המקורי של 2, מריצים את הפקודה הבאה:

gcloud dataproc clusters update example-cluster \
    --region=REGION \
    --num-workers 2

הסרת המשאבים

כדי לא לצבור חיובים בחשבון Google Cloud על המשאבים שבהם השתמשתם בדף הזה, בצעו את הפעולות הבאות.

  1. כדי למחוק את example-cluster, מריצים את הפקודה clusters delete:
    gcloud dataproc clusters delete example-cluster \
        --region=REGION
    

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