miércoles, 18 de noviembre de 2015

Integrando Kafka (producer) y Spark Streaming (consumer), Parte 1

Breve tutorial que tratará de mostrar como integrar estas dos potentes herramientas: Kafka y Spark Streaming. La idea es aclarar o ampliar en cierta forma la información contenida en la guía Spark Streaming + Kafka Integration Guide a través de un sencillo ejemplo.

En esta primera parte cubriré como procesar con Spark Streaming (consumer) la información proveniente de Kafka (producer).

Preparación del Entorno
Software necesario:


Descargar e instalar las diferentes herramientas anteriormente mencionadas. En mi caso he usado el directorio /usr/local como directorio base en el que desplegarlas:
Directorio /usr/local
Acordarse también de exportar las variables de entorno adecuadas:
Variables de entorno
Servidores Zookeeper & Kafka
Iniciar el servidor de Zookeeper:
  # zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
Zookeeper Server Start
En otra shell diferente iniciar el servidor de Kafka:
  # kafka-server-start.sh $KAFKA_HOME/config/server.properties
Kakfa Server Start (1)
Kakfa Server Start (2)
Sin cerrar ninguna de las otras líneas de comandos, abrir dos nuevas más:

En la primera de ellas crearemos el topic 'demo':
  # kafka-topics.sh --zookeeper localhost:2181 --create --topic demo --partitions 1 --replication-factor 1

En esa misma terminal haremos a continuación uso del propio script de Kafka, kafka-console-producer.sh, para generar futuros mensajes:
  # kafka-console-producer.sh --broker-list localhost:9092 --topic demo
Start Producer
Spark Streaming Examples
Mientras que en la segunda terminal arrancaremos el proceso que deberá consumir los mensajes que vayamos generando:
  # $SPARK_HOME/bin/run-example org.apache.spark.examples.streaming.KafkaWordCount localhost:2181 groupTest demo 1
Start Consumer
Por último, ya sólo faltaría ir generando mensajes en la ventana del producer y ver como son procesados en la del consumer:




0 comentarios:

Publicar un comentario