Mecanismo de limpeza de datos de Spark Streaming
(I) DStream e RDD
Como sabemos, a computación de Spark Streaming baséase en Spark Core, e o núcleo de Spark Core é RDD, polo que Spark Streaming tamén debe estar relacionado con RDD. Non obstante, Spark Streaming non permite que os usuarios usen RDD directamente, senón que abstrae un conxunto de conceptos de DStream. DStream e RDD son relacións inclusivas, que se poden entender como o patrón de decoración en Java, é dicir, DStream é unha mellora de RDD, pero o comportamento é similar a RDD.
Tanto DStream como RDD teñen varias condicións.
(1) teñen accións de transformación semellantes, como map, reduceByKey, etc., pero tamén algunhas únicas, como Window, mapWithStated, etc.
(2) todos teñen accións de acción, como foreachRDD, count, etc.
O modelo de programación é coherente.
(B) Introdución de DStream en Spark Streaming
DStream contén varias clases.
(1) Clases de fontes de datos, como InputDStream, específicas como DirectKafkaInputStream, etc.
(2) Clases de conversión, normalmente MappedDStream, ShuffledDStream
(3) clases de saída, normalmente como ForEachDStream
Do anterior, os datos dende o principio (entrada) ata o final (saída) son xestionados polo sistema DStream, o que significa que o usuario normalmente non pode xerar nin manipular RDD directamente, polo que DStream ten a oportunidade e a obriga de ser responsable do ciclo de vida dos RDD.
Noutras palabras, Spark Streaming ten unhalimpeza automáticafunción.
(iii) O proceso de xeración de RDD en Spark Streaming
O fluxo de vida dos RDD en Spark Streaming é, en termos xerais, o seguinte.
(1) En InputDStream, os datos recibidos transfórmanse en RDD, como DirectKafkaInputStream, que xera KafkaRDD.
(2) despois, a través de MappedDStream e outras conversións de datos, esta vez chámase directamente RDD correspondente ao método de mapa para a conversión
(3) Na operación da clase de saída, só cando o RDD estea exposto, podes permitir que o usuario realice o almacenamento correspondente, outros cálculos e outras operacións.