תהליך עבודה באמצעות Cloud Scheduler

במסמך הזה משתמשים ברכיבים הבאים של Google Cloud, והשימוש בהם כרוך בתשלום:

  • Dataproc
  • Compute Engine
  • Cloud Scheduler

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

משתמשים חדשים של Google Cloud ? יכול להיות שאתם זכאים לתקופת ניסיון בחינם.

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

הגדרת הפרויקט

  1. נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  5. התקינו את ה-CLI של Google Cloud.

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

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

    gcloud init
  8. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  9. Verify that billing is enabled for your Google Cloud project.

  10. Enable the Dataproc, Compute Engine, and Cloud Scheduler APIs.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the APIs

  11. התקינו את ה-CLI של Google Cloud.

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

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

    gcloud init

יצירת תפקיד בהתאמה אישית

  1. פותחים את הדף IAM & Admin → Roles במסוף Google Cloud .
    1. לוחצים על CREATE ROLE (יצירת תפקיד) כדי לפתוח את הדף Create Role (יצירת תפקיד).
    2. ממלאים את השדות Title (שם), Description (תיאור), ID (מזהה) ו-Launch stage (שלב ההשקה). הצעה: כדאי להשתמש ב-Dataproc Workflow Template Create כשם התפקיד.
    3. לוחצים על 'הוספת הרשאות'.
      1. בטופס הוספת הרשאות, לוחצים על מסנן ואז בוחרים באפשרות 'הרשאה'. משלימים את המסנן כדי לקרוא את המחרוזת Permission: dataproc.workflowTemplates.instantiate.
      2. לוחצים על תיבת הסימון שמימין להרשאה שמופיעה ברשימה ואז לוחצים על הוספה.
    4. בדף 'יצירת תפקיד', לוחצים שוב על 'הוספת הרשאות' כדי לחזור על שלבי המשנה הקודמים ולהוסיף את ההרשאה iam.serviceAccounts.actAs לתפקיד המותאם אישית. בדף Create Role מופיעות עכשיו שתי הרשאות.
    5. לוחצים על CREATE (יצירה) בדף Custom Role (תפקיד בהתאמה אישית). התפקיד בהתאמה אישית מופיע בדף תפקידים.

יצירה של חשבון שירות

  1. נכנסים לדף Service Accounts במסוף Google Cloud .

    כניסה לדף Service Accounts

  2. בוחרים את הפרויקט הרצוי.

  3. לוחצים על Create Service Account (יצירת חשבון שירות).

  4. בשדה Service account name, מזינים את השם workflow-scheduler. המסוף Google Cloud ממלא את השדה מזהה חשבון שירות בהתאם לשם הזה.

  5. אופציונלי: בשדה Service account description, מזינים תיאור של חשבון השירות.

  6. לוחצים על Create and continue.

  7. לוחצים על השדה Select a role (בחירת תפקיד) ובוחרים את התפקיד בהתאמה אישית Dataproc Workflow Template Create (יצירת תבנית של זרימת עבודה ב-Dataproc) שיצרתם בשלב הקודם.

  8. לוחצים על Continue.

  9. בשדה תפקיד מנהלי חשבון שירות, מזינים את כתובת האימייל של חשבון Google.

  10. לוחצים על Done כדי לסיים ליצור את חשבון השירות.

יוצרים תבנית לתהליך עבודה.

מעתיקים ומריצים את הפקודות שבהמשך בחלון טרמינל מקומי או ב-Cloud Shell כדי ליצור ולהגדיר תבנית של תהליך עבודה.

הערות:

  • הפקודות מציינות את האזור us-central1. אם הפעלתם בעבר את הפקודה gcloud config set compute/region כדי להגדיר את מאפיין האזור, אתם יכולים לציין אזור אחר או למחוק את הדגל --region.
  • הרצף "‎-- " (מקף מקף רווח) בפקודה add-job מעביר את הארגומנט 1000 למשימה SparkPi, שמציין את מספר הדגימות שישמשו להערכת הערך של פאי.

  1. יוצרים את תבנית תהליך העבודה.
    gcloud dataproc workflow-templates create sparkpi \
        --region=us-central1
    
  2. מוסיפים את משימת Spark לתבנית של תהליך העבודה sparkpi. חובה לציין את מזהה השלב compute, שמזהה את משימת SparkPi שנוספה.
    gcloud dataproc workflow-templates add-job spark \
        --workflow-template=sparkpi \
        --step-id=compute \
        --class=org.apache.spark.examples.SparkPi \
        --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \
        --region=us-central1 \
        -- 1000
    

  3. כדי להפעיל את תהליך העבודה, צריך להשתמש באשכול מנוהל עם צומת יחיד. Managed Service for Apache Spark ייצור את האשכול, יפעיל בו את תהליך העבודה ואז ימחק את האשכול כשתהליך העבודה יסתיים.

    gcloud dataproc workflow-templates set-managed-cluster sparkpi \
        --cluster-name=sparkpi \
        --single-node \
        --region=us-central1
    

  4. לוחצים על השם של sparkpi בדף Workflows של Managed Service for Apache Spark במסוף Google Cloud כדי לפתוח את הדף Workflow template details. מאשרים את מאפייני התבנית sparkpi.

יצירת משימה ב-Cloud Scheduler

  1. פותחים את הדף Cloud Scheduler במסוףGoogle Cloud (יכול להיות שתצטרכו לבחור את הפרויקט כדי לפתוח את הדף). לוחצים על CREATE JOB (יצירת עבודה).

  2. מזינים או בוחרים את פרטי המשרה הבאים:

    1. בחירת אזור: us-central או אזור אחר שבו יצרתם את תבנית זרימת העבודה.
    2. שם: sparkpi
    3. תדירות: הערך ‎* * * * *‎ בוחר כל דקה, הערך ‎0 9 * * 1‎ בוחר כל יום שני בשעה 9:00. אפשר לעיין בהגדרת לוח הזמנים של העבודה כדי לראות ערכים אחרים של unix-cron. הערה:תוכלו ללחוץ על הלחצן RUN NOW (הפעלה מיידית) בJobs (משימות) ב-Cloud Scheduler ב Google Cloud מסוף כדי להפעיל ולבדוק את המשימה, בלי קשר לתדירות שהגדרתם למשימה.
    4. אזור זמן: בוחרים את timezone. מקלידים 'ארצות הברית' כדי לראות רשימה של אזורי זמן בארה"ב.
    5. יעד: 'HTTP'
    6. כתובת URL: מוסיפים את כתובת ה-URL הבאה אחרי שמוסיפים את התגית your-project-id. אם יצרתם את תבנית זרימת העבודה באזור אחר, צריך להחליף את us-central1. כתובת ה-URL הזו תפעיל את workflowTemplates.instantiate API של Managed Service for Apache Spark כדי להריץ את תבנית זרימת העבודה sparkpi.
      https://dataproc.googleapis.com/v1/projects/your-project-id/regions/us-central1/workflowTemplates/sparkpi:instantiate?alt=json
      
    7. שיטת HTTP‏:
      1. ‎"POST"‎
      2. גוף: "{}"
    8. כותרת אימות:
      1. ‫"Add OAuth token" (הוספת טוקן OAuth)
      2. חשבון שירות: מזינים את service account address של חשבון השירות שיצרתם לצורך המדריך הזה. אחרי שמוסיפים את your-project-id, אפשר להשתמש בכתובת החשבון הבאה:
        workflow-scheduler@your-project-id.iam.gserviceaccount.com
        
      3. היקף: אפשר להתעלם מהפריט הזה.
    9. לוחצים על 'יצירה'.

בדיקת משימה מתוזמנת של תהליך עבודה

  1. בשורה של המשימה sparkpi בדף משימות ב-Cloud Scheduler, לוחצים על 'הפעלה עכשיו'.

  2. ממתינים כמה דקות ואז פותחים את הדף Managed Service for Apache Spark Workflows כדי לוודא שתהליך העבודה sparkpi הסתיים.

  3. אחרי שתהליך העבודה מוחק את האשכול המנוהל, פרטי המשימה נשמרים במסוף Google Cloud . לוחצים על המשימה compute... שמופיעה בדף משימות של Managed Service for Apache Spark כדי לראות את פרטי המשימה של תהליך העבודה.

הסרת המשאבים

תהליך העבודה במדריך הזה מוחק את האשכול המנוהל שלו כשהוא מסתיים. אם משאירים את תהליך העבודה, אפשר להריץ אותו מחדש ולא יחויבו עליו. כדי להימנע מחיובים חוזרים, אפשר למחוק משאבים אחרים שנוצרו במדריך הזה.

מחיקת פרויקטים

  1. במסוף Google Cloud , נכנסים לדף Manage resources.

    כניסה לדף Manage resources

  2. ברשימת הפרויקטים, בוחרים את הפרויקט שרוצים למחוק ולוחצים על Delete.
  3. כדי למחוק את הפרויקט, כותבים את מזהה הפרויקט בתיבת הדו-שיח ולוחצים על Shut down.

מחיקת תבנית של תהליך עבודה

gcloud dataproc workflow-templates delete sparkpi \
    --region=us-central1

מחיקת המשימה ב-Cloud Scheduler

פותחים את הדף Jobs ב-Cloud Scheduler במסוף Google Cloud , מסמנים את התיבה שמימין לפונקציה sparkpi ולוחצים על DELETE.

מחיקה של חשבון השירות

פותחים את הדף IAM & Admin → Service Accounts במסוף Google Cloud , מסמנים את התיבה שמימין לחשבון השירות workflow-scheduler... ולוחצים על DELETE.

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