פרויקט קוד פתוח של Apache חדש יחסית לעומת hadoop, שנועד להתגבר על החסרונות של Hadoop. Spark הוא מנוע גנרי לעיבוד מהיר של big data.
בדומה ל-hadoop גם ב-Spark עיבוד הנתונים הוא מקבילי ומבוזר על commodity hardware (מערכות רגילות יחסית שידוע מראש שמדי פעם יהיו Nodes שייפלו). Spark נכתב ב-scala ורץ על JVM. כלי ה-debug של Java זמינים גם למתכנת spark.
ל-Spark יש API עשיר שמאפשר להריץ על cluster של הרבה מחשבים שאילתות SQL, מודלים של machine learning, graph processing ועוד כדי לעבד
big data במהירות.
בעיבוד מבוזר יש הרבה אתגרים שאין בתכנות רגיל על מכונה יחידה. למשל -
- טיפול בנפילות של חלק מהמכונות
- data latency
- סנכרון בין תהליכים
- scalability
אחת הסיבות ש-spark הפך להיות כל כך פופולארי היא מהירות העיבוד שלו. Spark משתמש ב-in-memory caching וב-DAG-based processing engine כדי להגדיל
את מהירות העיבוד. הוא מנצל את הזיכרון של ה-Nodes כדי לשמור חישובי ביניים ולהשתמש בהם שוב כשצריך.
דבר זה מגדיל את מהירות העיבוד בצורה משמעותית. Spark הצליח להגיע לביצועים שמהירים פי 100 מ-hadoop עבור in-memory computations והוא מהיר
פי 10 עבור חישובים על הדיסק. Spark ניצח את Hadoop בתחרות של מיון מידע בגודל של peta-byte (התחרות נקראה Daytona GraySort contest), היה מהיר
פי 3 מ-hadoop והשתמש בפי
10 פחות חומרה מ-Hadoop.
Spark גם יודע
לעבד בצורה מהירה מודלים איטרטיבים של Machine learning הודות ל-in-memory caching שלו. הוא
מספק תגובה ב-real-time עבור
שאילתות על כמויות מידע גדולות, ויש לו low latency באנליזות שמבוצעות על live data streams.
ניתן להשתמש ב-spark עם השפות python, Scala ו-java.
Spark מאחד בתוכו את כל הכלים הנצרכים ל-data science pipeline. במקום להשתמש בהרבה כלים נפרדים לצורך כל ה-pipeline. הוא מספק API לצורך:
- data mungling (preprocessing של המידע לפורמט הנדרש)
- ETL (ראשי תיבות של Extract, Transform and Load שזהו תהליך של העברת מידע מ-DB אחד לאחר)
- Machine Learning
- Graph processing
- Streaming
- Interactive and batch processing
וכך ניתן לבצע את כל ה-pipeline על אותו Framework.
הוא גם מקל בכל תהליך הפיתוח, ה-deployment והתחזוקה. יש לו אינטגרציה עם הרבה כלים ב- ecosystem של Hadoop והוא יכול לקרוא ולכתוב להרבה פורמטים ומקורות מידע כמו HDFS, Cassandra, S3, HBase ועוד.
Spark (בשונה מ-hadoop) הוא לא מערכת של data storage אבל הוא מנוע עם יכולות מגוונות של קריאה וכתיבה. בנוסף הוא מספק DataFrame API לצורך קריאת מידע מובנה ע"י Spark SQL.
עד כאן להפעם.
אם אהבתם, תכתבו משהו למטה...
מוסבר פשוט ומעניין !
השבמחקתודה לך אנונימי יקר
מחקכתוב מצויין תודה רבה
השבמחקבכיף. תודה על התגובה
מחקמעולה!
השבמחקתודה
מחקתודה!! מסיר את הלוט.. מסביר בצורה מצונית ומקצועית
השבמחק