בדף הזה מוסבר איך להשתמש ב-Cloud Storage FUSE עם Dataflow כדי לעבד מערכי נתונים למשימות של למידת מכונה (ML).
כשעובדים עם משימות של למידת מכונה, אפשר להשתמש ב-Dataflow לעיבוד של מערכי נתונים גדולים. עם זאת, לספריות תוכנה נפוצות מסוימות שמשמשות ל-ML, כמו OpenCV, יש דרישות לגבי קובצי קלט. לרוב, הן דורשות גישה לקבצים כאילו הם מאוחסנים בכונן הקשיח של מחשב מקומי, ולא מאוחסנים בענן. הדרישה הזו יוצרת קשיים ועיכובים. כפתרון, צינורות יכולים להשתמש במחברי קלט/פלט מיוחדים לקלט או להוריד קבצים למכונות הווירטואליות (VM) של Dataflow לפני העיבוד. הפתרונות האלה לרוב לא יעילים.
Cloud Storage FUSE מספק דרך להימנע מהפתרונות הלא יעילים האלה. Cloud Storage FUSE מאפשר לטעון את הקטגוריות של Cloud Storage במכונות הווירטואליות של Dataflow. כך הקבצים ב-Cloud Storage נראים כאילו הם קבצים מקומיים. כתוצאה מכך, תוכנת ה-ML יכולה לגשת אליהם ישירות בלי להוריד אותם מראש.
יתרונות
השימוש ב-Cloud Storage FUSE למשימות של למידת מכונה מציע את היתרונות הבאים:
- אפשר לגשת לקובצי קלט שמתארחים ב-Cloud Storage במכונה הווירטואלית של Dataflow באמצעות סמנטיקה של מערכת קבצים מקומית.
- מכיוון שהגישה לנתונים היא על פי דרישה, אין צורך להוריד את קובצי הקלט מראש.
תמיכה ומגבלות
- כדי להשתמש ב-Cloud Storage FUSE עם Dataflow, צריך להגדיר למכונות הווירטואליות של העובדים כתובות IP חיצוניות כדי שהן יעמדו בדרישות הגישה לאינטרנט.
ציון קטגוריות לשימוש עם Cloud Storage FUSE
כדי לציין קטגוריה של Cloud Storage לטעינה במכונה וירטואלית, משתמשים בדגל --experiments. כדי לציין כמה קטגוריות, צריך להשתמש בנקודה-פסיק (;) כתו מפריד בין שמות הקטגוריות.
הפורמט הוא כזה:
--experiments="gcsfuse_buckets=CONFIG"
מחליפים את מה שכתוב בשדות הבאים:
CONFIG: רשימה של רשומות Cloud Storage שמופרדות באמצעות נקודה-פסיק, כאשר כל רשומה היא אחת מהאפשרויות הבאות:
BUCKET_NAME: שם של קטגוריה של Cloud Storage. לדוגמה,dataflow-samples. אם לא מציינים את מצב הקטגוריה, הקטגוריה נחשבת לקריאה בלבד.
BUCKET_NAME:MODE: שם של קטגוריה של Cloud Storage והמצב המשויך שלה, כאשרMODEהואro(לקריאה בלבד) אוrw(קריאה וכתיבה).לדוגמה:
--experiments="gcsfuse_buckets=read-bucket1;read-bucket2:ro;write-bucket1:rw"בדוגמה הזו, ציון המצב מבטיח את הדברים הבאים:
-
gs://read-bucket1טעון במצב קריאה-בלבד. -
gs://read-bucket2טעון במצב קריאה-בלבד. -
gs://write-bucket1נטען במצב קריאה-כתיבה.
-
קוד צינור Beam יכול לגשת לדליים האלה בכתובת
/var/opt/google/gcs/BUCKET_NAME.