במסמך הזה מוצגת סקירה כללית של פריסת צינורות עיבוד נתונים, ומוסבר על חלק מהפעולות שאפשר לבצע בצינור עיבוד נתונים שנפרס.
הפעלת הפייפליין
אחרי שיוצרים ובודקים את צינור הנתונים של Apache Beam, מריצים את צינור הנתונים. אפשר להריץ את צינור עיבוד הנתונים באופן מקומי כדי לבדוק ולנפות באגים בצינור עיבוד הנתונים של Apache Beam, או ב-Dataflow, מערכת לעיבוד נתונים שזמינה להרצת צינורות עיבוד נתונים של Apache Beam.
הרצה באופן מקומי
מריצים את צינור עיבוד הנתונים באופן מקומי.
Java
בדוגמה הבאה של קוד, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד WordCount באופן מקומי. איך מריצים את צינור הנתונים של Java באופן מקומי
במסוף, מריצים את הפקודה הבאה:
mvn compile exec:java \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--output=counts"
Python
בדוגמה הבאה של קוד, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד WordCount באופן מקומי. כך מריצים את צינור הנתונים של Python באופן מקומי.
במסוף, מריצים את הפקודה הבאה:
python -m apache_beam.examples.wordcount \ --output outputs
המשך
בדוגמה הבאה של קוד, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד WordCount באופן מקומי. איך מריצים את צינור הנתונים של Go באופן מקומי
במסוף, מריצים את הפקודה הבאה:
go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output outputs
כאן מוסבר איך מריצים את צינור הנתונים באופן מקומי, במחשב, באמצעות Direct Runner.
הפעלה ב-Dataflow
מריצים את צינור עיבוד הנתונים ב-Dataflow.
Java
בדוגמת הקוד הבאה, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור עיבוד הנתונים WordCount ב-Dataflow. איך מריצים צינור עיבוד נתונים של Java ב-Dataflow
בטרמינל, מריצים את הפקודה הבאה (מהספרייה word-count-beam):
mvn -Pdataflow-runner compile exec:java \
-Dexec.mainClass=org.apache.beam.examples.WordCount \
-Dexec.args="--project=PROJECT_ID \
--gcpTempLocation=gs://BUCKET_NAME/temp/ \
--output=gs://BUCKET_NAME/output \
--runner=DataflowRunner \
--region=REGION"
מחליפים את מה שכתוב בשדות הבאים:
-
PROJECT_ID: מזהה הפרויקט ב- Google Cloud -
BUCKET_NAME: שם הקטגוריה של Cloud Storage -
REGION: אזור Dataflow, כמוus-central1
Python
בדוגמת הקוד הבאה, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור עיבוד הנתונים WordCount ב-Dataflow. איך מריצים צינור עיבוד נתונים של Python ב-Dataflow
במסוף, מריצים את הפקודה הבאה:
python -m apache_beam.examples.wordcount \ --region DATAFLOW_REGION \ --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output gs://STORAGE_BUCKET/results/outputs \ --runner DataflowRunner \ --project PROJECT_ID \ --temp_location gs://STORAGE_BUCKET/tmp/
מחליפים את מה שכתוב בשדות הבאים:
-
DATAFLOW_REGION: האזור שבו רוצים לפרוס את עבודת Dataflow, לדוגמה:europe-west1הדגל
--regionמבטל את האזור שמוגדר כברירת מחדל בשרת המטא-נתונים, בלקוח המקומי או במשתני הסביבה. -
STORAGE_BUCKET: שם Cloud Storage שהעתקתם קודם -
PROJECT_ID: Google Cloud מזהה הפרויקט שהעתקתם קודם
המשך
בדוגמת הקוד הבאה, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד WordCount ב-Dataflow. איך מריצים צינור Go ב-Dataflow
במסוף, מריצים את הפקודה הבאה:
go run wordcount.go --input gs://dataflow-samples/shakespeare/kinglear.txt \ --output gs://STORAGE_BUCKET/results/outputs \ --runner dataflow \ --project PROJECT_ID \ --region DATAFLOW_REGION \ --staging_location gs://STORAGE_BUCKET/binaries/
מחליפים את מה שכתוב בשדות הבאים:
-
STORAGE_BUCKET: שם הקטגוריה של Cloud Storage. -
PROJECT_ID: מזהה הפרויקט ב- Google Cloud . -
DATAFLOW_REGION: האזור שבו רוצים לפרוס את משימת Dataflow. לדוגמה,europe-west1. רשימת המיקומים הזמינים מופיעה במאמר מיקומי Dataflow. שימו לב שהדגל--regionמבטל את אזור ברירת המחדל שמוגדר בשרת המטא-נתונים, בלקוח המקומי או במשתני הסביבה.
כאן מוסבר איך מריצים את צינור הנתונים בשירות Dataflow.
כשמריצים את צינור הנתונים ב-Dataflow, Dataflow הופך את קוד צינור הנתונים של Apache Beam לעבודת Dataflow. Dataflow מנהל באופן מלא Google Cloud שירותים בשבילכם, כמו Compute Engine ו-Cloud Storage, כדי להריץ את משימת Dataflow, ומפעיל ומכבה באופן אוטומטי את המשאבים הנדרשים. מידע נוסף על האופן שבו Dataflow הופך את קוד Apache Beam למשימת Dataflow זמין במאמר מחזור החיים של צינור עיבוד נתונים.
אימות צינורות עיבוד נתונים
כשמריצים את הפייפליין ב-Dataflow, לפני שהג'וב מופעל, Dataflow מבצע בדיקות אימות בפייפליין. אם בדיקת האימות מזהה בעיות בצינור עיבוד הנתונים, Dataflow מפסיק את שליחת העבודה בשלב מוקדם. ביומני העבודות, Dataflow כולל הודעות עם הטקסט הבא. כל הודעה כוללת גם פרטים על ממצאי האימות והוראות לפתרון הבעיה.
The preflight pipeline validation failed for job JOB_ID.
אילו בדיקות אימות יפעלו תלוי במשאבים ובשירותים שבהם נעשה שימוש בעבודת Dataflow.
- אם Service Usage API מופעל בפרויקט, בדיקות האימות של צינור העיבוד בודקות אם השירותים שנדרשים להרצת עבודת Dataflow מופעלים.
- אם Cloud Resource Manager API מופעל בפרויקט, בדיקות האימות של צינור הנתונים בודקות אם יש לכם את ההגדרות ברמת הפרויקט שנדרשות להרצת משימת Dataflow.
מידע נוסף על הפעלת שירותים זמין במאמר הפעלה והשבתה של שירותים.
מידע על פתרון בעיות בהרשאות שזוהו במהלך אימות צינורות זמין במאמר אימות צינורות נכשל.
אם רוצים לבטל את אימות צינור העיבוד ולהפעיל את העבודה עם שגיאות אימות, משתמשים באפשרות השירות הבאה של צינור העיבוד:
Java
--dataflowServiceOptions=enable_preflight_validation=false
Python
--dataflow_service_options=enable_preflight_validation=false
המשך
--dataflow_service_options=enable_preflight_validation=false
הגדרת אפשרויות של צינור עיבוד הנתונים
אתם יכולים לשלוט בהיבטים מסוימים של אופן ההפעלה של העבודה ב-Dataflow על ידי הגדרת אפשרויות של צינור עיבוד הנתונים בקוד של צינור עיבוד הנתונים ב-Apache Beam. לדוגמה, אתם יכולים להשתמש באפשרויות של צינורות כדי להגדיר אם הצינור יפעל במכונות וירטואליות של עובדים, בקצה העורפי של שירות Dataflow או באופן מקומי.
ניהול יחסי תלות בפייפליין
הרבה צינורות עיבוד נתונים של Apache Beam יכולים לפעול באמצעות סביבות זמן הריצה של Dataflow שמוגדרות כברירת מחדל. עם זאת, יש תרחישי שימוש מסוימים שבהם כדאי להשתמש בספריות או במחלקות נוספות. במקרים כאלה, יכול להיות שתצטרכו לנהל את התלות של צינורות העיבוד. מידע נוסף על ניהול יחסי תלות זמין במאמר ניהול יחסי תלות בצינורות ב-Dataflow.
מעקב אחרי העבודה
Dataflow מספקת תצוגה של המשימות באמצעות כלים כמו ממשק המעקב של Dataflow וממשק שורת הפקודה של Dataflow.
גישה למכונות וירטואליות של עובדים
אפשר לראות את המכונות הווירטואליות של צינור נתונים מסוים באמצעותGoogle Cloud המסוף. משם אפשר להשתמש ב-SSH כדי לגשת לכל מכונה. עם זאת, אחרי שהעבודה מסתיימת או נכשלת, שירות Dataflow מכבה אוטומטית את המכונות הווירטואליות ומנקה אותן.
אופטימיזציות של משרות
בנוסף לניהול משאבים, Dataflow מבצעת באופן אוטומטי אופטימיזציה של היבטים רבים של עיבוד מקבילי מבוזר. Google Cloud
הקצאה מקבילית והפצה
Dataflow מחלק באופן אוטומטי את הנתונים ומפיץ את קוד העובד למכונות וירטואליות ב-Compute Engine לעיבוד מקבילי. מידע נוסף זמין במאמר בנושא מקביליות והפצה.
אופטימיזציות של מיזוג ושילוב
Dataflow משתמש בקוד של צינור עיבוד הנתונים כדי ליצור גרף ביצוע שמייצג את PCollectionהפעולות והטרנספורמציות של צינור עיבוד הנתונים, ומבצע אופטימיזציה של הגרף כדי להשיג את הביצועים היעילים ביותר ואת השימוש היעיל ביותר במשאבים.
בנוסף, Dataflow מבצע אופטימיזציה אוטומטית של פעולות שעשויות להיות יקרות, כמו צבירת נתונים. מידע נוסף זמין במאמרים בנושא אופטימיזציה של מיזוג ושילוב אופטימיזציה.
תכונות כוונון אוטומטי
שירות Dataflow כולל כמה תכונות שמאפשרות להתאים את הקצאת המשאבים ואת חלוקת הנתונים למחיצות תוך כדי תנועה. התכונות האלה עוזרות ל-Dataflow להריץ את העבודה שלכם במהירות וביעילות ככל האפשר. התכונות האלה כוללות:
מנוע סטרימינג
כברירת מחדל, רכיב ההפעלה של צינור עיבוד הנתונים של Dataflow מבצע את השלבים של צינור עיבוד הנתונים של הסטרימינג כולו במכונות וירטואליות של עובדים, וצורך מעבד, זיכרון ואחסון בדיסק מתמשך של העובדים. מנוע הסטרימינג של Dataflow מעביר את ההפעלה של צינורות אל מחוץ למכונות הווירטואליות של העובדים, אל הקצה העורפי של שירות Dataflow. מידע נוסף זמין במאמר בנושא Streaming Engine.
תזמון משאבים גמיש ב-Dataflow
FlexRS ב-Dataflow מפחית את עלויות העיבוד באצווה באמצעות טכניקות מתקדמות לתזמון, שירות ארגון נתונים של Dataflow ושילוב של מכונות וירטואליות זמניות (VM) ומכונות וירטואליות רגילות. אם Compute Engine מפסיק מכונות וירטואליות שניתנות להפסקת פעולה במהלך אירוע מערכת, Dataflow משפר את חוויית המשתמש על ידי הפעלת מכונות וירטואליות שניתנות להפסקת פעולה ומכונות וירטואליות רגילות במקביל. FlexRS עוזר להבטיח שהצינור ימשיך להתקדם ושלא תאבדו עבודה קודמת כש-Compute Engine מבצע הפסקה של מכונות וירטואליות שניתנות להפסקה. מידע נוסף על FlexRS זמין במאמר שימוש בתזמון גמיש של משאבים ב-Dataflow.
מכונה וירטואלית מוגנת ב-Dataflow
החל מ-1 ביוני 2022, שירות Dataflow משתמש ב-מכונה וירטואלית מוגנת לכל ה-workers. מידע נוסף על היכולות של מכונות וירטואליות מוגנות זמין במאמר מכונה וירטואלית מוגנת.