• באנר_חדשות

שֵׁרוּת

מנגנון ניקוי נתונים של Spark Streaming
(I) DStream ו-RDD
כידוע, חישוב Spark Streaming מבוסס על Spark Core, והליבה של Spark Core היא RDD, כך ש-Spark Streaming חייב להיות קשור גם ל-RDD. עם זאת, Spark Streaming אינו מאפשר למשתמשים להשתמש ב-RDD ישירות, אלא מפשט קבוצה של מושגי DStream. DStream ו-RDD הם קשרים כוללניים, ניתן להבין זאת כתבנית קישוט ב-Java, כלומר, DStream הוא שיפור של RDD, אך ההתנהגות דומה ל-RDD.
ל-DStream ול-RDD יש מספר תנאים.
(1) בעלי פעולות טרנספורמציה דומות, כגון map, reduceByKey וכו', אך גם כמה ייחודיות, כגון Window, mapWithStated וכו'.
(2) לכולם יש פעולות פעולה, כגון foreachRDD, count וכו'.
מודל התכנות הוא עקבי.
(ב) הכנסת DStream ב-Spark Streaming
DStream מכיל מספר מחלקות.
(1) מחלקות מקורות נתונים, כגון InputDStream, ספציפיות כמו DirectKafkaInputStream וכו'.
(2) מחלקות המרה, בדרך כלל MappedDStream, ShuffledDStream
(3) מחלקות פלט, בדרך כלל כגון ForEachDStream
מהאמור לעיל, הנתונים מההתחלה (קלט) ועד הסוף (פלט) נעשים על ידי מערכת DStream, מה שאומר שהמשתמש בדרך כלל אינו יכול לייצר ולתפעל ישירות RDDs, מה שאומר של-DStream יש את ההזדמנות והחובה להיות אחראי על מחזור החיים של RDDs.
במילים אחרות, ל-Spark Streaming ישניקוי אוטומטיפוּנקצִיָה.
(iii) תהליך יצירת RDD ב-Spark Streaming
זרימת החיים של RDDs ב-Spark Streaming היא גסה כדלקמן.
(1) ב-InputDStream, הנתונים המתקבלים מומרים ל-RDD, כגון DirectKafkaInputStream, אשר מייצר את KafkaRDD.
(2) לאחר מכן, באמצעות MappedDStream והמרת נתונים אחרת, זמן זה נקרא ישירות RDD, המתאים לשיטת המפה להמרה.
(3) בפעולת מחלקת הפלט, רק כאשר ה-RDD חשוף, ניתן לאפשר למשתמש לבצע את האחסון המתאים, חישובים אחרים ופעולות אחרות.