השוואה ל-Dataproc ב-Compute Engine

לקוחות 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 כדי למצות את הפוטנציאל המלא של הנתונים.