Механизъм за почистване на данни на 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 и т.н.
Програмният модел е последователен.
(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 е изложен, можете да позволите на потребителя да извърши съответното съхранение, други изчисления и други операции.