Apache Flume: flujo de datos

Flume es un marco que se utiliza para mover datos de registro a HDFS. Generalmente los eventos y los datos de registro son generados por los servidores de registro y estos servidores tienen agentes Flume ejecutándose en ellos. Estos agentes reciben los datos de los generadores de datos.

Los datos de estos agentes serán recopilados por un nodo intermedio conocido como Collector. Al igual que los agentes, puede haber varios recolectores en Flume.

Finalmente, los datos de todos estos recopiladores se agregarán y se enviarán a una tienda centralizada como HBase o HDFS. El siguiente diagrama explica el flujo de datos en Flume.

Flujo de varios saltos

Dentro de Flume, puede haber varios agentes y antes de llegar al destino final, un evento puede viajar a través de más de un agente. Esto se conoce comomulti-hop flow.

Flujo de distribución

El flujo de datos de una fuente a varios canales se conoce como fan-out flow. Es de dos tipos:

  • Replicating - El flujo de datos donde se replicarán los datos en todos los canales configurados.

  • Multiplexing - El flujo de datos donde se enviarán los datos a un canal seleccionado que se menciona en el encabezado del evento.

Flujo de ventilador

El flujo de datos en el que los datos se transferirán de muchas fuentes a un canal se conoce como fan-in flow.

Manejo de fallas

En Flume, para cada evento, se realizan dos transacciones: una en el remitente y otra en el receptor. El remitente envía eventos al receptor. Poco después de recibir los datos, el receptor realiza su propia transacción y envía una señal "recibida" al remitente. Después de recibir la señal, el remitente confirma su transacción. (El remitente no confirmará su transacción hasta que reciba una señal del receptor).