במסמך הזה מוצגת סקירה כללית של פריסת צינור עיבוד נתונים, ומוסבר על חלק מהפעולות שאפשר לבצע בצינור עיבוד נתונים שנפרס.
הפעלת הפייפליין
אחרי שיוצרים ובודקים את צינור עיבוד הנתונים של 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
Go
בדוגמה הבאה של קוד, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד 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 מזהה הפרויקט שהעתקתם קודם
Go
בדוגמת הקוד הבאה, שנלקחה מהמדריך למתחילים, אפשר לראות איך מריצים את צינור העיבוד WordCount ב-Dataflow. איך מריצים צינור Go ב-Dataflow
במסוף, מריצים את הפקודה הבאה:
posix-terminal 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 Platform בשבילכם, כמו 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
Go
--dataflow_service_options=enable_preflight_validation=false
הגדרת אפשרויות של צינור עיבוד הנתונים
אתם יכולים לשלוט בהיבטים מסוימים של אופן ההפעלה של העבודה ב-Dataflow על ידי הגדרת אפשרויות של צינור עיבוד הנתונים בקוד של צינור עיבוד הנתונים של Apache Beam. לדוגמה, אתם יכולים להשתמש באפשרויות של צינורות כדי להגדיר אם הצינור יפעל במכונות וירטואליות של עובדים, בקצה העורפי של שירות Dataflow או באופן מקומי.
ניהול יחסי תלות בצינורות
הרבה צינורות עיבוד נתונים של Apache Beam יכולים לפעול באמצעות סביבות זמן הריצה של Dataflow שמוגדרות כברירת מחדל. עם זאת, יש תרחישי שימוש שבהם כדאי להשתמש בספריות או במחלקות נוספות כדי לעבד נתונים. במקרים כאלה, יכול להיות שתצטרכו לנהל את התלות של צינורות העיבוד. מידע נוסף על ניהול יחסי תלות זמין במאמר ניהול יחסי תלות בצינורות ב-Dataflow.
מעקב אחרי העבודה
Dataflow מספקת תצוגה של המשימות באמצעות כלים כמו ממשק המעקב של Dataflow וממשק שורת הפקודה של Dataflow.
גישה למכונות וירטואליות של worker
אפשר לראות את המכונות הווירטואליות של צינור נתונים מסוים באמצעותGoogle Cloud המסוף. משם אפשר להשתמש ב-SSH כדי לגשת לכל מכונה. עם זאת, אחרי שהעבודה מסתיימת או נכשלת, שירות Dataflow מכבה אוטומטית את המכונות הווירטואליות ומנקה אותן.
אופטימיזציות של משרות
בנוסף לניהול משאבים, Dataflow מבצע באופן אוטומטי אופטימיזציה של היבטים רבים של עיבוד מקבילי מבוזר. Google Cloud
הפצה והפעלה במקביל
Dataflow מחלק באופן אוטומטי את הנתונים ומפיץ את קוד העובד למכונות וירטואליות ב-Compute Engine לעיבוד מקביל. מידע נוסף זמין במאמר בנושא טעינה במקביל והפצה.
אופטימיזציות של מיזוג ושילוב
מערכת Dataflow משתמשת בקוד של צינור הנתונים כדי ליצור גרף ביצוע שמייצג את PCollectionהפעולות והטרנספורמציות של צינור הנתונים, ומבצעת אופטימיזציה של הגרף כדי להשיג את הביצועים היעילים ביותר ואת השימוש היעיל ביותר במשאבים.
בנוסף, Dataflow מבצע אופטימיזציה אוטומטית של פעולות שעשויות להיות יקרות, כמו צבירה של נתונים. מידע נוסף זמין במאמרים בנושא אופטימיזציה של מיזוג ואופטימיזציה של שילוב.
תכונות כוונון אוטומטיות
שירות Dataflow כולל כמה תכונות שמאפשרות להתאים את הקצאת המשאבים וחלוקת הנתונים באופן דינמי. התכונות האלה עוזרות ל-Dataflow להריץ את העבודה שלכם במהירות וביעילות ככל האפשר. התכונות האלה כוללות:
מנוע סטרימינג
כברירת מחדל, רכיב ההפעלה של צינור עיבוד הנתונים של Dataflow מבצע את השלבים של צינור עיבוד הנתונים של הסטרימינג כולו במכונות וירטואליות של עובדים, וצורכת CPU, זיכרון ואחסון של Persistent Disk של עובדים. מנוע הסטרימינג של Dataflow מעביר את ההפעלה של צינורות אל מחוץ למכונות הווירטואליות של העובדים, אל הקצה העורפי של שירות Dataflow. מידע נוסף זמין במאמר בנושא Streaming Engine.
תזמון משאבים גמיש ב-Dataflow
FlexRS ב-Dataflow מפחית את עלויות העיבוד באצווה באמצעות טכניקות מתקדמות לתזמון, שירות ארגון נתונים של Dataflow ושילוב של מכונות וירטואליות (VM) זמניות ומכונות וירטואליות רגילות. הפעלת VM זמני ו-VM רגיל במקביל משפרת את חוויית המשתמש ב-Dataflow אם Compute Engine מפסיק מופעי VM זמני במהלך אירוע מערכת. FlexRS עוזר להבטיח שהצינור ימשיך להתקדם ושלא תאבדו עבודה קודמת כש-Compute Engine מבצע preempt ל-VMs שניתנים להפסקת פעולה. מידע נוסף על FlexRS זמין במאמר שימוש בתזמון גמיש של משאבים ב-Dataflow.
מכונה וירטואלית מוגנת ב-Dataflow
החל מ-1 ביוני 2022, שירות Dataflow משתמש ב-מכונה וירטואלית מוגנת לכל העובדים. מידע נוסף על היכולות של מכונות וירטואליות מוגנות זמין במאמר מכונה וירטואלית מוגנת.