Was ist die Funktionalität der queueStream
Funktion in Spark StreamingContext
. Nach meinem Verständnis ist es eine Warteschlange, die die eingehenden DStream
in die Warteschlange stellt. Wenn dies der Fall ist, dann wie wird es im Cluster mit vielen Knoten behandelt. Hat jeder Knoten diese queueStream
und die DStream
ist unter allen Knoten im Cluster partitioniert? Wie funktioniert das queueStream
in Cluster-Setup?Funktionalität und Ausführung von queueStream in SparkStreaming?
Ich habe die folgende Erklärung in der [Spark Streaming Dokumentation] [https://spark.apache.org/docs/latest/streaming-programming-guide.html#basic-sources] gelesen, aber ich habe es nicht vollständig verstanden. Bitte hilf mir, es zu verstehen.
Queue von RDDs als Stream: für eine Spark-Streaming-Anwendung mit den Testdaten zu testen, kann man auch eine DSTREAM erstellen, die auf eine Warteschlange von RDDs basiert, unter Verwendung von streamingContext.queueStream (queueOfRDDs). Jede RDD, die in die Warteschlange eingereiht wird, wird in DStream als Stapel von Daten behandelt und wie ein Stream verarbeitet.
val myQueueRDD= scala.collection.mutable.Queue[RDD[MyObject]]()
val myStream= ssc.queueStream(myQueueRDD)
for(count <- 1 to 100) {
val randomData= generateData() //Generated random data
val rdd= ssc.sparkContext.parallelize(randomData) //Creates the rdd of the random data.
myQueueRDD+= rdd //Addes data to queue.
}
myStream.foreachRDD(rdd => rdd.mapPartitions(data => evaluate(data)))
Wie der obige Teil des Codes wird im Funken Streaming Zusammenhang mit Bezug auf Partitionen auf verschiedenen Knoten ausgeführt werden sollen.
Sie holen mich ein! ;-) – eliasah
Ja. Wenn es nur eine Warteschlange gibt, wie die RDD-Verteilung geschieht, ist dies der Teil, den ich klar haben möchte. Wenn sich die Warteschlange nur im Treiber befindet, partitionieren und berechnen Sie, wie es parallel in allen Knoten passiert. –
Können Sie bitte die Bearbeitung der Frage auschecken, die Klarheit über meine Zweifel @ user6910411 gibt –