Mecanismo de limpeza de datos de Spark Streaming
(I) DStream e RDD
Como sabemos, o cálculo 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 aos usuarios usar RDD directamente, pero abstrae un conxunto de conceptos de DStream, DStream e RDD son relacións inclusivas, podes entendelo como o patrón de decoración en Java, é dicir, DStream é unha mellora de RDD, pero o comportamento é semellante ao RDD.
DStream e RDD teñen varias condicións.
(1) teñen accións de transformación similares, 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 é consistente.
(B) Introdución de DStream en Spark Streaming
DStream contén varias clases.
(1) Clases de fonte 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
Polo anterior, os datos desde o principio (entrada) ata o final (saída) son feitos polo sistema DStream, o que significa que o usuario normalmente non pode xerar e manipular directamente RDD, o que significa que o DStream ten a oportunidade e a obriga de ser responsable do ciclo de vida dos RDD.
Noutras palabras, Spark Streaming ten unlimpeza automáticafunción.
(iii) O proceso de xeración de RDD en Spark Streaming
O fluxo de vida dos RDD en Spark Streaming é brusco como segue.
(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 do mapa para a conversión
(3) Na operación de clase de saída, só cando o RDD está exposto, pode permitir que o usuario realice o almacenamento correspondente, outros cálculos e outras operacións.