• banner de noticias

Servicio

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, lo que se puede entender como el patrón de decoración en Java. Es decir, DStream es una mejora de RDD, pero su comportamiento es similar.
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 inicio (entrada) hasta el final (salida) los realiza el sistema DStream, lo que significa que el usuario normalmente no puede generar y manipular directamente los RDD, lo que significa que el 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, a grandes rasgos, 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 RDD correspondiente al método de mapa para la conversión
(3) En la operación de clase de salida, solo cuando se expone el RDD, puede permitir que el usuario realice el almacenamiento correspondiente, otros cálculos y otras operaciones.