Apache Flume forma parte de la gran diversidad de herramientas que se encuentran en la actualidad para el manejo de los macrodatos. En efecto, su tarea principal radica en la facilitación del procesamiento de la información por medio de estrategias y dinámicas para un gran volumen de datos.
En este post, te mostramos un primer acercamiento a Apache Flume y cómo funciona dentro del mundo Big Data.
¿Qué es Apache Flume?
Apache Flume es un servicio para recopilar grandes cantidades de datos de transmisión, en particular, registros. Además, envía datos a los consumidores mediante mecanismos a los que llama sumideros de datos.
Por otra parte, Apache Flume puede enviar información a muchos sumideros populares de inmediato, como a HDFS, HBase, Cassandra y algunas bases de datos relacionales.
¿Cómo funciona Apache Flume?
Este servicio Big Data tiene muchas posibilidades y configuraciones específicas para cada caso de estudio de datos. A continuación, te compartimos cómo funciona en uno de ellos:
En primer lugar, debes entrar en el clúster de Dataproc utilizando el shell. Después, debes crear una carpeta para Flume y lo descargas directamente desde internet así:
- sudo mkdir /usr/lib/flume
- sudo chmod -R 777 /usr/lib/flume
- cd /usr/lib/flume
- wget http://apache.rediris.es/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
- ls
- tar -xzf apache-flume-1.9.0-bin.tar.gz
Ahora, insertas esto en el archivo .bashrc del home para configurar las variables de entorno necesarias para Apache Flume:
- export FLUME_HOME=”/usr/lib/flume/apache-flume-1.9.0-bin”
- export FLUME_CONF_DIR=”$FLUME_HOME/conf”
- export FLUME_CLASSPATH=”$FLUME_CONF_DIR”
- export PATH=”$FLUME_HOME/bin:$PATH”
Refrescas .bashrc y procedes a entrar en la carpeta de configuración de Flume:
- source ~/.bashrc
- cd $FLUME_CONF_DIR
- cp flume-env.sh.template flume-env.sh
- cp flume-conf.properties.template flume-conf.properties
- rm /$FLUME_HOME/lib/guava-11.0.2.jar
Después, dentro del archivo de environment de Flume (flume-env.sh) configuras las variables de entorno:
- export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64
- Give Flume more memory and pre-allocate, enable remote monitoring via JMX
- export JAVA_OPTS=”-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote”
- cd $FLUME_CONF_DIR
- sed -i ‘$a \export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-amd64\nexport JAVA_OPTS=”-Xms100m -Xmx2000m -Dcom.sun.management.jmxremote”‘ flume-env.sh
A continuación, confirmas que los cambios de configuración han ido bien si no falla el siguiente comando: flume-ng -help.
Además, para que la conexión funcione, debes buscar la IP PRIVADA de la máquina de Kafka y ejecutar el siguiente comando:
- export KAFKA_IP=”10.172.0.12″
- echo $KAFKA_IP
Por último, tras haber configurado correctamente Apache Flume, podrás crear un CONSUMER para Kafka definiendo un archivo de configuración nuevo (kafka.conf).
Deberías tener algo así en la definición del sink/conector para Hadoop-Kafka:
Por otra parte, para hacerlo con un comando sería así:
Una vez definido el archivo del consumidor, lo arrancas con Apache Flume:
- flume-ng agent -n flume1 -c conf -f kafka.conf – Dflume.root.logger=INFO,console
¿Cómo continuar aprendiendo Big Data?
En este post, has aprendido qué es Apache Flume y cómo funciona para el mundo Big Data. Sin embargo, para comprender y llevar a cabo un estudio de datos sin fisuras con esta herramienta, es necesario que estudies cómo funciona junto a otras como Kafka o HDFS (Hadoop Data File System).
Por ello, desde KeepCoding te ofrecemos nuestro Bootcamp Full Stack Big Data, Inteligencia Artificial & Machine Learning. En él, podrás aprender sobre las principales herramientas del Big Data de la mano de grandes expertos. De esta forma, en menos de nueve meses te habrás convertido en todo un experto. ¡Apúntate ahora!