Apache Flume - Arquitectura
La siguiente ilustración muestra la arquitectura básica de Flume. Como se muestra en la ilustración,data generators (como Facebook, Twitter) generan datos que son recopilados por Flume individual agentscorriendo sobre ellos. A partir de entonces, undata collector (que también es un agente) recopila los datos de los agentes que se agregan y se envían a una tienda centralizada como HDFS o HBase.
Evento de canal
Un event es la unidad básica de los datos transportados dentro Flume. Contiene una carga útil de una matriz de bytes que se transportará desde el origen al destino acompañada de encabezados opcionales. Un evento típico de Flume tendría la siguiente estructura:
Agente de canal
Un agentes un proceso daemon independiente (JVM) en Flume. Recibe los datos (eventos) de clientes u otros agentes y los reenvía a su próximo destino (receptor o agente). Flume puede tener más de un agente. El siguiente diagrama representa unFlume Agent
Como se muestra en el diagrama, un agente de canal contiene tres componentes principales, a saber, source, channely sink.
Fuente
UNA source es el componente de un agente que recibe datos de los generadores de datos y los transfiere a uno o más canales en forma de eventos Flume.
Apache Flume admite varios tipos de fuentes y cada fuente recibe eventos de un generador de datos específico.
Example - Fuente de Avro, fuente de ahorro, fuente de twitter 1%, etc.
Canal
UNA channeles un almacén transitorio que recibe los eventos de la fuente y los almacena en búfer hasta que son consumidos por los sumideros. Actúa como puente entre las fuentes y los sumideros.
Estos canales son completamente transaccionales y pueden funcionar con cualquier número de fuentes y receptores.
Example - Canal JDBC, canal del sistema de archivos, canal de memoria, etc.
Lavabo
UNA sinkalmacena los datos en almacenes centralizados como HBase y HDFS. Consume los datos (eventos) de los canales y los entrega al destino. El destino del fregadero puede ser otro agente o las tiendas centrales.
Example - Fregadero HDFS
Note- Un agente de canal puede tener múltiples fuentes, sumideros y canales. Hemos enumerado todas las fuentes, receptores y canales compatibles en el capítulo de configuración de Flume de este tutorial.
Componentes adicionales del agente de canal
Lo que hemos discutido anteriormente son los componentes primitivos del agente. Además de esto, tenemos algunos componentes más que juegan un papel vital en la transferencia de eventos desde el generador de datos a las tiendas centralizadas.
Interceptores
Los interceptores se utilizan para alterar / inspeccionar eventos de canal que se transfieren entre la fuente y el canal.
Selectores de canales
Estos se utilizan para determinar qué canal se optará para transferir los datos en caso de múltiples canales. Hay dos tipos de selectores de canales:
Default channel selectors - Estos también se conocen como selectores de canal de replicación, replican todos los eventos en cada canal.
Multiplexing channel selectors - Estos deciden el canal para enviar un evento según la dirección en el encabezado de ese evento.
Procesadores de fregadero
Se utilizan para invocar un sumidero particular del grupo de sumideros seleccionado. Se utilizan para crear rutas de conmutación por error para sus receptores o eventos de equilibrio de carga en varios receptores de un canal.