Vamos a mostrar una especie de Hello World de comunicación entre Kafka (0.8.0), Storm (0.9.0-wip21) y Hadoop (2.0.2-alpha-gphd).
Para ello vamos a utilizar la distribución de Hadoop PivotalHD y enviaremos un mensaje JSON a Kafka, lo fecharemos en Storm y lo almacenaremos en HDFS
Lo primero es hacerse con las últimas versiones de cada uno e instalarlos en uno o varios servidores (este paso lo omitiremos).
Y luego:
· Arrancar Kafka
bin/kafka-server-start.sh config/server.properties
· Crear el tópico y enviar el mensaje JSON
echo «{«name»:»testFetchJSON»,»type»:»7″}» | bin/kafka-console-producer.sh –broker-list localhost:9092 –topic jsonTopic
· Crear la topología Storm.
No es propiamente una topología si no que actuaremos directamente sobre el Stream ya que es un ejemplo muy simple
Ø La clase donde se define la topología Storm
Ø La clase que se encarga de la lectura del mensaje del Broker Kafka desde Storm es esta:
Ø La clase que se encarga de la modificación del mensaje es la siguiente:
Ø La persistencia en HDFS se realiza desde esta clase:
· Una vez compilado se puede ejecutar en el modo LocalCluster de Storn mediante maven:
mvn exec:java -Dexec.mainClass=»openbus.processor.topology.OpenbusJSONTopology»
· Y con el comando para comprobar que se ha creado el fichero correspondiente
hadoop fs -cat hdfs://192.168.20.135:8020/user/gpadmin/openbus/json*
{«name»:»testFetchJSON»,«date»:»2013/10/07 04:36:33″,»type»:7}