Μηχανισμός καθαρισμού δεδομένων 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) όλα έχουν ενέργειες Action, όπως foreachRDD, count, κ.λπ.
Το μοντέλο προγραμματισμού είναι συνεπές.
(Β) Εισαγωγή του DStream στο Spark Streaming
Το DStream περιέχει αρκετές κλάσεις.
(1) Κλάσεις πηγής δεδομένων, όπως η InputDStream, συγκεκριμένα η DirectKafkaInputStream, κ.λπ.
(2) Κλάσεις μετατροπής, συνήθως MappedDStream, ShuffledDStream
(3) κλάσεις εξόδου, συνήθως όπως ForEachDStream
Από τα παραπάνω, τα δεδομένα από την αρχή (είσοδος) έως το τέλος (έξοδος) δημιουργούνται από το σύστημα DStream, πράγμα που σημαίνει ότι ο χρήστης κανονικά δεν μπορεί να δημιουργήσει και να χειριστεί άμεσα RDDs, πράγμα που σημαίνει ότι το DStream έχει την ευκαιρία και την υποχρέωση να είναι υπεύθυνο για τον κύκλο ζωής των RDDs.
Με άλλα λόγια, το Spark Streaming έχει ένααυτόματος καθαρισμόςλειτουργία.
(iii) Η διαδικασία δημιουργίας RDD στο Spark Streaming
Η ροή ζωής των RDD στο Spark Streaming είναι περίπου η εξής:
(1) Στο InputDStream, τα ληφθέντα δεδομένα μετατρέπονται σε RDD, όπως το DirectKafkaInputStream, το οποίο παράγει το KafkaRDD.
(2) έπειτα μέσω του MappedDStream και άλλων μετατροπών δεδομένων, αυτός ο χρόνος ονομάζεται άμεσα RDD που αντιστοιχεί στη μέθοδο map για τη μετατροπή
(3) Στη λειτουργία κλάσης εξόδου, μόνο όταν το RDD είναι εκτεθειμένο, μπορείτε να αφήσετε τον χρήστη να εκτελέσει την αντίστοιχη αποθήκευση, άλλους υπολογισμούς και άλλες λειτουργίες.