לקוחות Google Cloud שמסתמכים על Apache Spark כדי להריץ את עומסי העבודה של עיבוד הנתונים והניתוח שלהם, צריכים להחליט בין Dataproc ב-Compute Engine (שנקרא 'Dataproc' במסמך הזה) לבין Serverless for Apache Spark. שני השירותים מציעים סביבת Spark מנוהלת, ניתנת להרחבה, מוכנה לייצור ומאובטחת, שתואמת ל-OSS ותומכת בכל הפורמטים. עם זאת, יש הבדלים מהותיים בין שתי הפלטפורמות באופן שבו התשתית הבסיסית מנוהלת ומחויבת.
במסמך הזה אנחנו משווים בין Google Cloud Serverless for Apache Spark לבין Dataproc ומפרטים את התכונות והיכולות שלהם כדי לעזור לכם להחליט מהו הפתרון הכי טוב לעומס העבודה שלכם.
השוואה בין Serverless for Apache Spark לבין Dataproc
אם רוצים להקצות ולנהל תשתית, ואז להריץ עומסי עבודה ב-Spark ובמסגרות עיבוד אחרות בקוד פתוח, אפשר להשתמש ב-Dataproc ב-Compute Engine. בטבלה הבאה מפורטים ההבדלים העיקריים בין Dataproc ב-Compute Engine לבין Serverless for Apache Spark.
| יכולת | Serverless (בלי שרת) ל-Apache Spark | Dataproc ב-Compute Engine |
|---|---|---|
| מסגרות לעיבוד נתונים | עומסי עבודה באצווה וסשנים אינטראקטיביים: Spark | Spark. מסגרות קוד פתוח אחרות, כמו Hive, Flink, Trino ו-Kafka |
| ללא שרת (serverless) | כן | לא |
| זמן ההפעלה | 50s | 120 שניות |
| שליטה בתשתית | לא | כן |
| ניהול המשאבים | ללא שרת (serverless) | YARN |
| תמיכה ב-GPU | כן | כן |
| סשנים אינטראקטיביים | כן | לא |
| מאגרי תגים בהתאמה אישית | כן | לא |
| גישה למכונה הווירטואלית (SSH) | לא | כן |
| גרסאות Java | Java 17, 21 | Java 17 וגרסאות קודמות |
בחירת שירות Spark המתאים
בקטע הזה מפורטות נקודות החוזק העיקריות של כל שירות ותיאורי מקרה לשימוש בו, כדי לעזור לכם לבחור את השירות המתאים ביותר לעומסי העבודה של Spark.
סקירה כללית
ההבדלים בין Dataproc לבין Serverless for Apache Spark הם ברמת השליטה, בניהול התשתית ובאופן החיוב.
- Spark מנוהל על ידי Dataproc: Dataproc מציע אשכולות Spark כשירות, שמריצים Spark מנוהל בתשתית Compute Engine שלכם. אתם משלמים על זמן הפעולה של האשכול.
- Serverless for Apache Spark: Serverless for Apache Spark מציע Spark-jobs-as-a-service, שמריץ את Spark בתשתית מנוהלת לחלוטין Google Cloud. התשלום הוא על זמן הריצה של העבודה.
בגלל ההבדלים האלה, כל שירות מתאים לתרחישי השימוש הבאים:
| שירות | תרחישים לדוגמה |
|---|---|
| Dataproc | סביבות משותפות שפועלות לאורך זמן עומסי עבודה שנדרשת לגביהם שליטה מדויקת בתשתית העברה של סביבות Hadoop ו-Spark מדור קודם |
| Serverless (בלי שרת) ל-Apache Spark | סביבות עבודה ייעודיות שונות עומסי עבודה של אצווה מתוזמנים ניהול קוד מקבל עדיפות על פני ניהול תשתית |
ההבדלים העיקריים
| תכונה | Serverless (בלי שרת) ל-Apache Spark | Dataproc |
|---|---|---|
| מודל ניהול | סביבת ביצוע מנוהלת באופן מלא, ללא שרת (serverless). | מבוסס על אשכולות. אתם מקצים ומנהלים את האשכולות. |
| בקרה והתאמה אישית | פחות שליטה בתשתית, עם התמקדות בשליחת קוד ובהגדרת פרמטרים של Spark. | שליטה רבה יותר בהגדרת האשכול, בסוגי המכונות ובתוכנה. אפשרות להשתמש במכונות וירטואליות מסוג Spot, ולעשות שימוש חוזר בהזמנות ובקיבולת של משאבי Compute Engine. מתאים לעומסי עבודה שיש להם תלות בצורות ספציפיות של מכונות וירטואליות, כמו ארכיטקטורות של מעבדים. |
| תרחישים לדוגמה | שאילתות אד-הוק, ניתוח אינטראקטיבי, צינורות Spark חדשים ועומסי עבודה עם צרכים בלתי צפויים במשאבים. | אשכולות משותפים שפועלים לאורך זמן, העברת עומסי עבודה קיימים של Hadoop ו-Spark עם הגדרות מותאמות אישית, עומסי עבודה שנדרשת עבורם התאמה אישית מעמיקה. |
| תקורה תפעולית | תקורה נמוכה יותר. Google Cloud מנהל את התשתית, את ההתאמה ואת ההקצאה, ומאפשר מודל NoOps. Gemini Cloud Assist מקל על פתרון בעיות, והתאמה אוטומטית של Serverless for Apache Spark עוזרת לספק ביצועים אופטימליים. |
עלויות תקורה גבוהות יותר שדורשות ניהול, שינוי גודל ותחזוקה של אשכולות. |
| מודל יעילות | אין תקורה של מחשוב במצב סרק: הקצאת משאבי מחשוב רק כשהעבודה פועלת. אין עלויות הפעלה וכיבוי. תמיכה בסשנים אינטראקטיביים משותפים לשיפור היעילות. | היעילות שמתקבלת משיתוף אשכולות בין משימות וצוותים, עם שיתוף, מודל ריבוי דיירים. |
| הגדרת הגישה למיקום | Serverless (בלי שרת) ל-Apache Spark תומך בעומסי עבודה אזוריים ללא עלות נוספת, כדי לספק אמינות וזמינות נוספות. | האשכולות הם אזוריים. אפשר לבחור את האזור באופן אוטומטי במהלך יצירת האשכול. |
| עלות | החיוב מתבצע רק על משך ההפעלה של עבודת Spark, לא כולל הפעלה וסגירה, על סמך המשאבים שנצרכו. החיוב הוא על יחידות חישוב נתונים (DCU) שנעשה בהן שימוש ועל עלויות תשתיות אחרות. | החיוב מתבצע על משך הזמן שהאשכול פועל, כולל ההפעלה וההשבתה, על סמך מספר הצמתים. כולל את דמי הרישיון של Dataproc ועלות התשתית. |
| הנחות תמורת התחייבות לשימוש (CUD) | הנחות תמורת התחייבות להוצאה ב-BigQuery חלות על משימות ב-Serverless for Apache Spark. | הנחות CUD ב-Compute Engine חלות על כל השימוש במשאבים. |
| שליטה בתמונות ובזמן הריצה | המשתמשים יכולים להצמיד גרסאות משניות של זמן הריצה של Serverless for Apache Spark. גרסאות משניות חלקיות מנוהלות על ידי Serverless for Apache Spark. | המשתמשים יכולים להצמיד לגרסאות משניות ולגרסאות משניות משנה של תמונות Dataproc. |
| ניהול משאבים | ללא שרת (serverless) | YARN |
| תמיכה ב-GPU | כן | כן |
| סשנים אינטראקטיביים | כן | לא |
| מאגרי תגים בהתאמה אישית | כן | לא |
| גישה למכונות וירטואליות (SSH) | לא | כן |
| גרסאות Java | Java 17, 21 |
גרסאות קודמות נתמכות |
| זמן הפעלה | 50s | 120 שניות |
מתי כדאי לבחור ב-Dataproc
Dataproc הוא שירות מנוהל שמאפשר להריץ את Apache Spark ומסגרות אחרות לעיבוד נתונים בקוד פתוח. הוא מציע רמה גבוהה של שליטה וגמישות, ולכן הוא הבחירה המועדפת בתרחישים הבאים:
- העברת עומסי עבודה קיימים של Hadoop ו-Spark: תמיכה בהעברת אשכולות מקומיים של Hadoop או Spark אל Google Cloud. לשכפל תצורות קיימות עם שינויים מינימליים בקוד, במיוחד כשמשתמשים בגרסאות ישנות יותר של Spark.
- התאמה אישית ושליטה מתקדמות: מאפשרות להתאים אישית את סוגי המכונות באשכול, את גדלי הדיסקים ואת הגדרות הרשת. רמת השליטה הזו חיונית לשיפור הביצועים ולאופטימיזציה של ניצול המשאבים במשימות מורכבות שפועלות לאורך זמן.
- אשכולות שפועלים לאורך זמן וקבועים: תמיכה במשימות Spark רציפות שפועלות לאורך זמן ובאשכולות קבועים עבור צוותים ופרויקטים רבים.
- מערכת אקולוגית מגוונת של קוד פתוח: מספקת סביבה מאוחדת להרצת צינורות עיבוד נתונים שמריצים כלים של מערכת Hadoop, כמו Hive, Pig או Presto, עם עומסי העבודה של Spark.
- תאימות לאבטחה: מאפשרת שליטה בתשתית כדי לעמוד בתקני אבטחה או תאימות ספציפיים, כמו הגנה על פרטים אישיים מזהים (PII) או מידע רפואי מוגן (PHI).
- גמישות בתשתית: מציע מכונות וירטואליות מסוג Spot ואפשרות לעשות שימוש חוזר בהזמנות ובקיבולת המשאבים של Compute Engine כדי לאזן את השימוש במשאבים ולשפר את אסטרטגיית התשתית בענן.
מתי כדאי לבחור ב-Serverless for Apache Spark
Serverless ל-Apache Spark מסתיר את המורכבויות של ניהול אשכולות, ומאפשר לכם להתמקד בקוד Spark. לכן, הוא בחירה מצוינת לשימוש בתרחישים הבאים של עיבוד נתונים:
- ניתוח אד-הוק ואינטראקטיבי: מדעני נתונים ואנליסטים שמריצים שאילתות אינטראקטיביות וניתוחים גישוש באמצעות Spark יכולים להשתמש במודל ללא שרת כדי להתחיל במהירות בלי להתמקד בתשתית.
- אפליקציות וצינורות עיבוד נתונים מבוססי Spark: כשבונים צינורות עיבוד נתונים או אפליקציות חדשות ב-Spark, Serverless for Apache Spark יכול להאיץ משמעותית את הפיתוח כי הוא מבטל את העומס התפעולי של ניהול אשכולות.
- עומסי עבודה עם ביקוש לא סדיר או לא צפוי: במקרה של משימות Spark לסירוגין או משימות עם דרישות משאבים משתנות, אפשר להפחית משמעותית את העלויות באמצעות התאמה אוטומטית לעומס (automatic scaling) של Serverless for Apache Spark ותמחור לפי שימוש (החיובים חלים על צריכת משאבי המשימה).
- התמקדות בפרודוקטיביות של מפתחים: השימוש ב-Serverless ל-Apache Spark מייעל את יצירת הלוגיקה העסקית, מספק תובנות מהירות יותר ומגדיל את הפרודוקטיביות, כי אין צורך בהקצאה ובניהול של אשכולות.
- תפעול פשוט יותר וצמצום התקורות: ניהול התשתית של Serverless ל-Apache Spark מצמצם את העומס התפעולי והעלויות.
סיכום
ההחלטה אם להשתמש ב-Dataproc או ב-Serverless for Apache Spark תלויה בדרישות של עומס העבודה, בהעדפות התפעוליות וברמת השליטה הרצויה.
- בחרו ב-Dataproc אם אתם צריכים שליטה מקסימלית, אם אתם צריכים להעביר עומסי עבודה של Hadoop או Spark, או אם אתם צריכים סביבת אשכולות משותפת, מותאמת אישית וקבועה.
- כדאי לבחור ב-Serverless for Apache Spark כי הוא קל לשימוש, חסכוני בעלויות כשמדובר בעומסי עבודה לסירוגין, ומאפשר לזרז את הפיתוח של אפליקציות Spark חדשות כי הוא מסיר את התקורה של ניהול התשתית.
אחרי שמעריכים את הגורמים שמפורטים בקטע הזה, בוחרים את השירות היעיל והחסכוני ביותר להפעלת Spark כדי למצות את הפוטנציאל המלא של הנתונים.