איך שולחים עומס עבודה של אצווה בתשתית מחשוב של Managed Service for Apache Spark, שמשנה את קנה המידה של המשאבים לפי הצורך.
לפני שמתחילים
מגדירים את הפרויקט, ואם צריך, מקצים תפקידים בממשק לניהול הזהויות והרשאות הגישה (IAM).
הגדרת הפרויקט
מבצעים אחד או יותר מהשלבים הבאים לפי הצורך:
- נכנסים לחשבון Google Cloud . אם אתם משתמשים חדשים ב- Google Cloud, צרו חשבון כדי שתוכלו להעריך את הביצועים של המוצרים שלנו בתרחישים מהעולם האמיתי. לקוחות חדשים מקבלים בחינם גם קרדיט בשווי 300$ להרצה, לבדיקה ולפריסה של עומסי העבודה.
-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.-
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 theresourcemanager.projects.createpermission. Learn how to grant roles.
-
Verify that billing is enabled for your Google Cloud project.
Enable the Dataproc API.
Roles required to enable APIs
To enable APIs, you need the Service Usage Admin IAM role (
roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
הקצאת תפקידים ב-IAM אם צריך
כדי להריץ את הדוגמאות בדף הזה, צריך תפקידים מסוימים ב-IAM. יכול להיות שהתפקידים האלה כבר הוקצו, בהתאם למדיניות הארגון. כדי לבדוק את התפקידים שהוקצו, ראו האם צריך להקצות תפקידים?.
כדי לקרוא הסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.
תפקידי משתמשים
כדי לקבל את ההרשאות שדרושות לשליחת עומס עבודה של אצווה ללא שרתים, צריך לבקש מהאדמין להקצות לכם את תפקידי ה-IAM הבאים:
- עריכת פרויקטים ב-Dataproc (
roles/dataproc.editor) בפרויקט - משתמש בחשבון שירות (
roles/iam.serviceAccountUser) בחשבון השירות של Compute Engine שמוגדר כברירת מחדל
תפקיד בחשבון שירות
כדי לוודא שלחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine יש את ההרשאות שנדרשות לשליחת עומס עבודה של אצווה ללא שרתים, צריך לבקש מהאדמין להקצות לחשבון השירות שמוגדר כברירת מחדל ב-Compute Engine את תפקיד ה-IAM Dataproc Worker (roles/dataproc.worker) בפרויקט.
שליחת עומס עבודה באצווה של Spark
אפשר להשתמש במסוף, ב-Google Cloud CLI או ב-API בארכיטקטורת REST כדי ליצור ולשלוח עומס עבודה של אצווה ב-Managed Service for Apache Spark. Google Cloud
המסוף
במסוף Google Cloud , עוברים אל Managed Service for Apache Spark Batches.
לוחצים על יצירה.
שולחים עומס עבודה של אצווה ב-Spark שמחשב את הערך המשוער של פאי על ידי בחירה ומילוי של השדות הבאים:
- פרטי הטלפונים:
- Batch ID: מציינים מזהה לעומס העבודה של האצווה. הערך הזה צריך לכלול 4 עד 63 תווים קטנים. התווים התקפים הם
/[a-z][0-9]-/. - אזור: בוחרים אזור שבו עומס העבודה יפעל.
- Batch ID: מציינים מזהה לעומס העבודה של האצווה. הערך הזה צריך לכלול 4 עד 63 תווים קטנים. התווים התקפים הם
- מאגר:
- Batch type (סוג אצווה): Spark.
- גרסת זמן ריצה: מאשרים או בוחרים את גרסת זמן הריצה
3.0. - הכיתה הראשית:
org.apache.spark.examples.SparkPi
- קובצי Jar (הקובץ הזה מותקן מראש בסביבת ההפעלה של Managed Service for Apache Spark).
file:///usr/lib/spark/examples/jars/spark-examples.jar
- ארגומנטים: 1000.
- הגדרת ההפעלה: בוחרים באפשרות חשבון שירות. כברירת מחדל, ההרצה של אצווה תתבצע באמצעות חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. אפשר לציין חשבון שירות בהתאמה אישית. לחשבון השירות שמוגדר כברירת מחדל או לחשבון שירות בהתאמה אישית צריך להיות התפקיד Dataproc Worker.
- הגדרת רשת: בוחרים רשת משנה באזור של הסשן. Managed Service for Apache Spark מאפשר גישה פרטית ל-Google (PGA) ברשת המשנה שצוינה. למידע על דרישות הקישוריות לרשת, אפשר לעיין במאמר בנושא הגדרת הרשת של Managed Service for Apache Spark.
- מאפיינים: מזינים את
Key(שם המאפיין) ואתValueשל מאפייני Spark נתמכים שרוצים להגדיר בעומס העבודה של אצווה Spark. הערה: בניגוד למאפייני האשכול של Managed Service for Apache Spark, מאפייני עומס העבודה של Managed Service for Apache Spark לא כוללים קידומתspark:. - אפשרויות אחרות:
- אתם יכולים להגדיר את עומס העבודה של אצווה כך שישתמש בHive Metastore חיצוני שמנוהל עצמאית.
- אפשר להשתמש בשרת היסטוריה מתמשכת (PHS). ה-PHS צריך להיות ממוקם באזור שבו מריצים עומסי עבודה של אצווה.
- פרטי הטלפונים:
לוחצים על שליחה כדי להפעיל את עומס העבודה של Spark batch.
gcloud
כדי לשלוח עומס עבודה של Spark batch לחישוב הערך המשוער של pi, מריצים את הפקודה הבאה של ה-CLI של gcloud gcloud dataproc batches submit spark באופן מקומי בחלון טרמינל או ב-Cloud Shell.
gcloud dataproc batches submit spark \ --region=REGION \ --version=3.0 \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ -- 1000
מחליפים את מה שכתוב בשדות הבאים:
- REGION: מציינים את האזור שבו עומס העבודה יפעל.
- אפשרויות אחרות: אפשר להוסיף דגלים של
gcloud dataproc batches submit sparkכדי לציין אפשרויות אחרות של עומס עבודה ומאפיינים של Spark.-
--jars: קובץ ה-JAR לדוגמה מותקן מראש בסביבת ההפעלה של Spark. ארגומנט הפקודה1000שמועבר לעומס העבודה SparkPi מציין 1,000 איטרציות של לוגיקת ההערכה של pi (ארגומנטים של קלט עומס העבודה כלולים אחרי "-- "). -
--subnet: אפשר להוסיף את הדגל הזה כדי לציין את השם של תת-רשת באזור של הסשן. אם לא מציינים רשת משנה, Managed Service for Apache Spark בוחר את רשת המשנהdefaultבאזור של הסשן. Managed Service for Apache Spark מאפשר גישה פרטית ל-Google (PGA) ברשת המשנה. למידע על דרישות הקישוריות לרשת, ראו הגדרת הרשת של Managed Service for Apache Spark. -
--tags: אפשר להוסיף את הדגל הזה כדי לציין תגי רשת לבקרת תנועה. משתמשים בתגי רשת כדי להגביל את הקישוריות. בסביבת ייצור, מומלץ להגביל את הכללים בחומת האש לכתובות ה-IP שמשמשות את עומסי העבודה של Spark. -
--properties: אפשר להוסיף את הדגל הזה כדי להזין מאפייני Spark נתמכים לשימוש בעומס העבודה של Spark batch. -
--deps-bucket: אפשר להוסיף את הדגל הזה כדי לציין קטגוריה של Cloud Storage שאליה Managed Service for Apache Spark יעלה את התלות של עומס העבודה. לא צריך לציין את הקידומתgs://של ה-URI של הקטגוריה. אפשר לציין את הנתיב של הקטגוריה או את שם הקטגוריה. Managed Service for Apache Spark מעלה את הקבצים המקומיים לתיקיית/dependenciesבקטגוריה לפני הפעלת עומס העבודה של אצווה. הערה: חובה להשתמש בדגל הזה אם עומס העבודה של האצווה מפנה לקבצים במחשב המקומי. -
--ttl: אפשר להוסיף את הדגל--ttlכדי לציין את משך החיים של האצווה. אם עומס העבודה חורג מהמשך הזה, הוא מסתיים ללא תנאי בלי להמתין לסיום העבודה שמתבצעת. מציינים את משך הזמן באמצעות הסיומתs,m,hאוd(שניות, דקות, שעות או ימים). הערך המינימלי הוא 10 דקות (10m), והערך המקסימלי הוא 14 ימים (14d).- 1.1 או 2.0 runtime batches: אם לא מציינים את
--ttlעבור עומס עבודה של 1.1 או 2.0 runtime batch, עומס העבודה יכול לפעול עד שהוא יוצא באופן טבעי (או לפעול לנצח אם הוא לא יוצא). - 2.1+ runtime batches: אם לא מציינים את
--ttlעבור עומס עבודה של חבילת זמן ריצה בגרסה 2.1 ואילך, ברירת המחדל היא4h.
- 1.1 או 2.0 runtime batches: אם לא מציינים את
-
--service-account: אפשר לציין חשבון שירות שבו ישתמשו כדי להריץ את עומס העבודה. אם לא מציינים חשבון שירות, עומס העבודה פועל במסגרת חשבון השירות שמוגדר כברירת מחדל ב-Compute Engine. לחשבון השירות צריך להיות התפקיד Dataproc Worker. - Hive Metastore: הפקודה הבאה מגדירה עומס עבודה של אצווה לשימוש ב-Hive Metastore בניהול עצמי חיצוני באמצעות הגדרת Spark רגילה.
gcloud dataproc batches submit spark\ --properties=spark.sql.catalogImplementation=hive,spark.hive.metastore.uris=METASTORE_URI,spark.hive.metastore.warehouse.dir=WAREHOUSE_DIR> \ other args ... - Persistent History Server:
- הפקודה הבאה יוצרת PHS באשכול Managed Service for Apache Spark עם צומת יחיד. ה-PHS צריך להיות ממוקם באזור שבו מריצים עומסי עבודה באצווה, וצריך להיות קיים bucket-name ב-Cloud Storage.
gcloud dataproc clusters create PHS_CLUSTER_NAME \ --region=REGION \ --single-node \ --enable-component-gateway \ --properties=spark:spark.history.fs.logDirectory=gs://bucket-name/phs/*/spark-job-history
- שולחים עומס עבודה של אצווה ומציינים את שרת ההיסטוריה המתמשך שפועל.
gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --history-server-cluster=projects/project-id/regions/region/clusters/PHS-cluster-name \ -- 1000
- הפקודה הבאה יוצרת PHS באשכול Managed Service for Apache Spark עם צומת יחיד. ה-PHS צריך להיות ממוקם באזור שבו מריצים עומסי עבודה באצווה, וצריך להיות קיים bucket-name ב-Cloud Storage.
- Runtime version:
משתמשים בדגל
--versionכדי לציין את גרסת זמן הריצה של Managed Service for Apache Spark עבור עומס העבודה.gcloud dataproc batches submit spark \ --region=REGION \ --jars=file:///usr/lib/spark/examples/jars/spark-examples.jar \ --class=org.apache.spark.examples.SparkPi \ --version=VERSION -- 1000
-
API
בקטע הזה מוסבר איך ליצור עומס עבודה של עיבוד ברצף כדי לחשב את הערך המשוער של pi באמצעות Managed Service for Apache Spark batches.create`
לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- project-id: מזהה הפרויקט ב- Google Cloud .
- region: אזור ב-Compute Engine שבו יופעל עומס העבודה של Managed Service for Apache Spark.
- PROJECT_ID: מזהה הפרויקט ב- Google Cloud . מזהי הפרויקטים מופיעים בקטע Project info בלוח הבקרה של מסוף Google Cloud .
- REGION: האזור של הסשן.
הערות:
ה-method של ה-HTTP וכתובת ה-URL:
POST https://dataproc.googleapis.com/v1/projects/project-id/locations/region/batches
תוכן בקשת JSON:
{
"sparkBatch":{
"args":[
"1000"
],
"runtimeConfig": {
"version": "2.3",
},
"jarFileUris":[
"file:///usr/lib/spark/examples/jars/spark-examples.jar"
],
"mainClass":"org.apache.spark.examples.SparkPi"
}
}
כדי לשלוח את הבקשה צריך להרחיב אחת מהאפשרויות הבאות:
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name":"projects/project-id/locations/region/batches/batch-id",
"uuid":",uuid",
"createTime":"2021-07-22T17:03:46.393957Z",
"sparkBatch":{
"mainClass":"org.apache.spark.examples.SparkPi",
"args":[
"1000"
],
"jarFileUris":[
"file:///usr/lib/spark/examples/jars/spark-examples.jar"
]
},
"runtimeInfo":{
"outputUri":"gs://dataproc-.../driveroutput"
},
"state":"SUCCEEDED",
"stateTime":"2021-07-22T17:06:30.301789Z",
"creator":"account-email-address",
"runtimeConfig":{
"version":"2.3",
"properties":{
"spark:spark.executor.instances":"2",
"spark:spark.driver.cores":"2",
"spark:spark.executor.cores":"2",
"spark:spark.app.name":"projects/project-id/locations/region/batches/batch-id"
}
},
"environmentConfig":{
"peripheralsConfig":{
"sparkHistoryServerConfig":{
}
}
},
"operation":"projects/project-id/regions/region/operation-id"
}
הערכת עלויות של עומסי עבודה
עומסי עבודה של Managed Service for Apache Spark צורכים יחידות מחשוב נתונים (DCU) ומשאבי אחסון של ערבוב. דוגמה לפלט של UsageMetrics של Managed Service for Apache Spark כדי להעריך את צריכת המשאבים והעלויות של עומס העבודה מופיעה במאמר תמחור של Managed Service for Apache Spark.
המאמרים הבאים
מידע על: