Механізм очищення даних 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 тощо.
Модель програмування послідовна.
(B) Введення DStream у Spark Streaming
DStream містить кілька класів.
(1) Класи джерел даних, такі як InputDStream, специфічні як DirectKafkaInputStream тощо.
(2) Класи перетворення, зазвичай MappedDStream, ShuffledDStream
(3) класи виводу, зазвичай такі як ForEachDStream
Зі сказаного вище, дані від початку (введення) до кінця (виведення) виконуються системою DStream, що означає, що користувач зазвичай не може безпосередньо генерувати та маніпулювати RDD, що означає, що DStream має можливість і зобов’язаний бути відповідає за життєвий цикл RDD.
Іншими словами, Spark Streaming маєавтоматичне очищенняфункція.
(iii) Процес генерації RDD у Spark Streaming
Життєвий потік RDD у Spark Streaming є приблизно таким.
(1) У InputDStream отримані дані перетворюються в RDD, наприклад DirectKafkaInputStream, який генерує KafkaRDD.
(2) потім через MappedDStream та інше перетворення даних, цей час безпосередньо називається RDD, що відповідає методу карти для перетворення
(3) В операції класу виводу, лише коли доступний RDD, ви можете дозволити користувачеві виконувати відповідне зберігання, інші обчислення та інші операції.