Mecanismo de limpieza de datos de Spark Streaming
(I) DStream y RDD
Como sabemos, el cálculo de Spark Streaming se basa en Spark Core, y el núcleo de Spark Core es RDD, por lo que Spark Streaming también debe estar relacionado con RDD.Sin embargo, Spark Streaming no permite a los usuarios usar RDD directamente, sino que abstrae un conjunto de conceptos de DStream. DStream y RDD son relaciones inclusivas. Puede entenderlo como el patrón de decoración en Java, es decir, DStream es una mejora de RDD, pero el comportamiento es similar al RDD.
Tanto DStream como RDD tienen varias condiciones.
(1) tienen acciones de transformación similares, como map, reduceByKey, etc., pero también algunas únicas, como Window, mapWithStated, etc.
(2) todos tienen acciones de Acción, como foreachRDD, count, etc.
El modelo de programación es consistente.
(B) Introducción de DStream en Spark Streaming
DStream contiene varias clases.
(1) Clases de fuente de datos, como InputDStream, específicas como DirectKafkaInputStream, etc.
(2) Clases de conversión, normalmente MappedDStream, ShuffledDStream
(3) clases de salida, normalmente como ForEachDStream
De lo anterior, los datos desde el principio (entrada) hasta el final (salida) los realiza el sistema DStream, lo que significa que el usuario normalmente no puede generar y manipular RDD directamente, lo que significa que DStream tiene la oportunidad y la obligación de ser responsable del ciclo de vida de los RDD.
En otras palabras, Spark Streaming tiene unalimpieza automáticafunción.
(iii) El proceso de generación de RDD en Spark Streaming
El flujo de vida de los RDD en Spark Streaming es el siguiente.
(1) En InputDStream, los datos recibidos se transforman en RDD, como DirectKafkaInputStream, que genera KafkaRDD.
(2) Luego, a través de MappedDStream y otras conversiones de datos, esta vez se llama directamente al RDD correspondiente al método de conversión del mapa.
(3) En la operación de clase de salida, solo cuando el RDD está expuesto, puede permitir que el usuario realice el almacenamiento correspondiente, otros cálculos y otras operaciones.