Meccanismo di pulizia dei dati di Spark Streaming
(I) DStream e RDD
Come sappiamo, il calcolo di Spark Streaming è basato su Spark Core e il core di Spark Core è RDD, quindi anche Spark Streaming deve essere correlato a RDD.Tuttavia, Spark Streaming non consente agli utenti di utilizzare direttamente RDD, ma astrae una serie di concetti DStream, DStream e RDD sono relazioni inclusive, puoi interpretarlo come il modello di decorazione in Java, ovvero DStream è un miglioramento di RDD, ma il comportamento è simile a RDD.
DStream e RDD hanno entrambi diverse condizioni.
(1) hanno azioni di trasformazione simili, come map, reduceByKey, ecc., ma anche alcune uniche, come Window, mapWithStated, ecc.
(2) tutti hanno azioni di azione, come foreachRDD, count, ecc.
Il modello di programmazione è coerente.
(B) Introduzione di DStream in Spark Streaming
DStream contiene diverse classi.
(1) Classi di origine dati, come InputDStream, specifiche come DirectKafkaInputStream, ecc.
(2) Classi di conversione, in genere MappedDStream, ShuffledDStream
(3) classi di output, in genere come ForEachDStream
Da quanto sopra, i dati dall'inizio (input) alla fine (output) vengono elaborati dal sistema DStream, il che significa che l'utente normalmente non può generare e manipolare direttamente gli RDD, il che significa che DStream ha l'opportunità e l'obbligo di essere responsabile del ciclo di vita degli RDD.
In altre parole, Spark Streaming ha un filepulizia automaticafunzione.
(iii) Il processo di generazione dell'RDD in Spark Streaming
Il flusso di vita degli RDD in Spark Streaming è approssimativo come segue.
(1) In InputDStream, i dati ricevuti vengono trasformati in RDD, come DirectKafkaInputStream, che genera KafkaRDD.
(2) quindi tramite MappedDStream e altre conversioni di dati, questa volta viene chiamato direttamente RDD corrispondente al metodo della mappa per la conversione
(3) Nell'operazione della classe di output, solo quando l'RDD è esposto, è possibile consentire all'utente di eseguire l'archiviazione corrispondente, altri calcoli e altre operazioni.