Foro Formación Hadoop
Ejercicios Spark
Hola
Con respecto al ejercicio StreamContext :
import org.apache.spark.streaming.StreamingContext
import org.apache.spark.streaming.StreamingContext._
import org.apache.spark.streaming.Seconds
val ssc = new StreamingContext(sc, Seconds(5))
val mystream = ssc.socketTextStream("localhost",4444)
val words = mystream.flatMap(line => line.split("\\W"))
val wordCounts = words.map(x => (x, 1)).reduceByKey((x,y)=>(x+y))
wordCounts.print()
ssc.start()
ssc.awaitTermination()
Entiendo que estamos creando un Dstream para leer textos en el puerto 4444 , supongo que los Dstream tiene además otras aplicaciones para ser utilizados , es correcto ?
En mi caso me da este error de conexión.
18/02/28 03:51:50 ERROR scheduler.ReceiverTracker: Deregistered receiver for stream 0: Restarting receiver with delay 2000ms: Error connecting to localhost:4444 - java.net.ConnectException: Connection refused
Saludos
Hola Miguel,
Si, efectivamente. Tal y como se ve en la documentación es posible adquirir los datos desde diferentes orígenes (Flume, Kafka, RabitMQ, Twitter....).
Por otra parte, el erro es debido a que no tienes abierto el puerto 4444. Tal y como se indica en el pdf de los ejercicios, se debe abrir primero el puerto en otra terminal indicando:
nc -lkv 4444
Una vez abierto, ejecuta nuevamente el código de Spark Streaming.
Un saludo,
Redes sociales