Tutorial de Apache Flume: Transmisión de datos de Twitter



Este blog tutorial de Apache Flume explica los fundamentos de Apache Flume y sus características. También mostrará la transmisión de Twitter usando Apache Flume.

En este blog de tutoriales de Apache Flume, entenderemos cómo Flume ayuda a transmitir datos de varias fuentes. Pero antes de eso, comprendamos la importancia de la ingestión de datos. La ingestión de datos es el paso inicial e importante para procesar y analizar los datos, y luego derivar valores comerciales de ellos. Hay varias fuentes de las que se recopilan datos en una organización.

Hablemos de otra razón importante por la que Flume se hizo tan popular. Espero que estés familiarizado con , que se está utilizando enormemente en la industria, ya que puede almacenar todo tipo de datos. Flume puede integrarse fácilmente con Hadoop y volcar datos no estructurados y semiestructurados en HDFS, complementando la potencia de Hadoop. Es por eso que Apache Flume es una parte importante del ecosistema Hadoop.





En este blog tutorial de Apache Flume, cubriremos:



Comenzaremos este tutorial de Flume discutiendo sobre qué es Apache Flume. Luego, avanzando, comprenderemos las ventajas de usar Flume.

Tutorial de Apache Flume: Introducción a Apache Flume

Logotipo de Apache Flume - Tutorial de Apache Flume - EdurekaApache Flume es una herramienta para la ingestión de datos en HDFS. Recopila, agrega y transporta una gran cantidad de datos de transmisión, como archivos de registro, eventos de diversas fuentes, como tráfico de red, redes sociales, mensajes de correo electrónico, etc., a HDFS.Flume es un sistema altamente confiable y distribuido.

La idea principal detrás del diseño de Flume es capturar datos de transmisión desde varios servidores web a HDFS. Tiene una arquitectura simple y flexible basada en flujos de datos en tiempo real. Es tolerante a fallas y proporciona un mecanismo confiable para tolerancia a fallas y recuperación de fallas.



Después de comprender qué es Flume, avancemos en este blog Tutorial de Flume y comprendamos los beneficios de Apache Flume. Luego, avanzando, veremos la arquitectura de Flume y trataremos de comprender cómo funciona fundamentalmente.

que es una interfaz de marcador en java

Tutorial de Apache Flume: Ventajas de Apache Flume

Apache Flume tiene varias ventajas que lo convierten en una mejor opción sobre otras. Las ventajas son:

  • Flume es escalable, confiable, tolerante a fallas y personalizable para diferentes fuentes y sumideros.
  • Apache Flume puede almacenar datos en tiendas centralizadas (es decir, los datos se suministran desde una única tienda) como HBase y HDFS.
  • Flume es escalable horizontalmente.
  • Si la velocidad de lectura supera la velocidad de escritura, Flume proporciona un flujo constante de datos entre las operaciones de lectura y escritura.
  • Flume proporciona una entrega de mensajes confiable. Las transacciones en Flume se basan en canales donde se mantienen dos transacciones (un remitente y un receptor) para cada mensaje.
  • Con Flume, podemos ingerir datos de varios servidores en Hadoop.
  • Nos brinda una solución confiable y distribuida, y nos ayuda a recopilar, agregar y mover una gran cantidad de conjuntos de datos como Facebook, Twitter y sitios web de comercio electrónico.
  • Nos ayuda a ingerir datos de transmisión en línea de varias fuentes como tráfico de red, redes sociales, mensajes de correo electrónico, archivos de registro, etc. en HDFS.
  • Admite un gran conjunto de tipos de fuentes y destinos.

La arquitectura es una que está empoderando a Apache Flume con estos beneficios. Ahora, como conocemos las ventajas de Apache Flume, avancemos y comprendamos la arquitectura de Apache Flume.

Tutorial de Apache Flume: Arquitectura de Flume

Ahora, comprendamos la arquitectura de Flume a partir del siguiente diagrama:

Existe un agente Flume que ingiere los datos de transmisión de varias fuentes de datos a HDFS. En el diagrama, puede comprender fácilmente que el servidor web indica la fuente de datos. Twitter es una de las fuentes más famosas de transmisión de datos.

El agente de canal tiene 3 componentes: fuente, sumidero y canal.

    1. Fuente : Acepta los datos de la línea entrante y almacena los datos en el canal.
    2. Canal : En general, la velocidad de lectura es más rápida que la velocidad de escritura. Por lo tanto, necesitamos un búfer para igualar la diferencia de velocidad de lectura y escritura. Básicamente, el búfer actúa como un almacenamiento intermedio que almacena los datos que se transfieren temporalmente y, por lo tanto, evita la pérdida de datos. De manera similar, el canal actúa como almacenamiento local o almacenamiento temporal entre la fuente de datos y los datos persistentes en HDFS.
    3. Lavabo : Luego, nuestro último componente, es decir, Sink, recopila los datos del canal y confirma o escribe los datos en el HDFS de forma permanente.

Ahora que sabemos cómo funciona Apache Flume, echemos un vistazo a una práctica donde hundiremos los datos de Twitter y los almacenaremos en el HDFS.

Tutorial de Apache Flume: Transmisión de datos de Twitter

En esta práctica, transmitiremos datos desde Twitter usando Flume y luego almacenaremos los datos en HDFS como se muestra en la siguiente imagen.

El primer paso es crear una aplicación de Twitter. Para ello, primero tienes que ir a esta url: https://apps.twitter.com/ e inicie sesión en su cuenta de Twitter. Vaya a la pestaña de creación de aplicaciones como se muestra en la imagen de abajo.

Luego, cree una aplicación como se muestra en la siguiente imagen.

Después de crear esta aplicación, encontrará el token de clave y acceso. Copie la clave y el token de acceso. Pasaremos estos tokens en nuestro archivo de configuración de Flume para conectarnos a esta aplicación.

Ahora cree un archivo flume.conf en el directorio raíz del flume como se muestra en la imagen de abajo. Como comentamos, en la Arquitectura de Flume, configuraremos nuestra Fuente, Sumidero y Canal. Nuestra fuente es Twitter, desde donde estamos transmitiendo los datos y nuestro Sink es HDFS, donde estamos escribiendo los datos.

En la configuración de la fuente, estamos pasando el tipo de fuente de Twitter como org.apache.flume.source.twitter.TwitterSource. Luego, estamos pasando los cuatro tokens que recibimos de Twitter. Por último, en la configuración de la fuente, estamos pasando las palabras clave sobre las que vamos a buscar los tweets.

En la configuración del Sink vamos a configurar las propiedades de HDFS. Configuraremos la ruta HDFS, el formato de escritura, el tipo de archivo, el tamaño del lote, etc. Por último, configuraremos el canal de memoria como se muestra en la imagen de abajo.

Ahora estamos listos para la ejecución. Sigamos adelante y ejecutemos este comando:

$ FLUME_HOME / bin / flume-ng agent --conf ./conf/ -f $ FLUME_HOME / flume.conf

Después de ejecutar este comando por un tiempo, y luego puede salir del terminal usando CTRL + C. Luego, puede continuar en su directorio Hadoop y verificar la ruta mencionada, ya sea que el archivo se haya creado o no.

que es la agregación en java

Descarga el archivo y ábrelo. Obtendrá algo como se muestra en la imagen de abajo.

Espero que este blog sea informativo y de valor agregado para ti. Si está interesado en obtener más información, puede consultar este que le informa sobre Big Data y cómo Hadoop está resolviendo desafíos relacionados con Big Data.

Ahora que ha entendido Apache Flume, consulte el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación de certificación de Edureka Big Data Hadoop ayuda a los alumnos a convertirse en expertos en HDFS, Yarn, MapReduce, Pig, Hive, HBase, Oozie, Flume y Sqoop utilizando casos de uso en tiempo real en el dominio de comercio minorista, redes sociales, aviación, turismo y finanzas.

Tienes una pregunta para nosotros? Menciónalo en la sección de comentarios y nos comunicaremos contigo.