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:
Acordarse también de exportar las variables de entorno adecuadas:
Servidores Zookeeper & Kafka
Iniciar el servidor de Zookeeper:
# zookeeper-server-start.sh $KAFKA_HOME/config/zookeeper.properties
En otra shell diferente iniciar el servidor de Kafka:
# kafka-server-start.sh $KAFKA_HOME/config/server.properties
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
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
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