תהליך עבודה באמצעות 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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  5. Install the Google Cloud CLI.

  6. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  7. To initialize the gcloud CLI, run the following command:

    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, if any are not already enabled.

    Roles required to enable APIs

    To enable APIs, you need the serviceusage.services.enable permission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.

    Enable the APIs

  11. Install the Google Cloud CLI.

  12. If you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.

  13. To initialize the gcloud CLI, run the following command:

    gcloud init

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

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

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

  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 שיצרתם בשלב הקודם.

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

  9. בשדה Service account admins role, מזינים את כתובת האימייל של חשבון Google.

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

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

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

הערות:

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

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

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

  1. בשורה של המשימה sparkpi בדף Jobs ב-Cloud Scheduler, לוחצים על RUN NOW.

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

  3. אחרי שתהליך העבודה מוחק את האשכול המנוהל, פרטי המשימה נשארים במסוף Google Cloud . לוחצים על המשימה compute... שמופיעה בדף Jobs ב-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.

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