Apache Flume - Architecture

L'illustration suivante présente l'architecture de base de Flume. Comme le montre l'illustration,data generators (comme Facebook, Twitter) génèrent des données qui sont collectées par Flume individuel agentscourir sur eux. Par la suite, undata collector (qui est également un agent) collecte les données des agents qui sont agrégées et poussées dans un magasin centralisé tel que HDFS ou HBase.

Événement Flume

Un event est l'unité de base des données transportées à l'intérieur Flume. Il contient une charge utile de tableau d'octets qui doit être transportée de la source à la destination accompagnée d'en-têtes facultatifs. Un événement Flume typique aurait la structure suivante -

Agent de canal

Un agentest un processus démon indépendant (JVM) dans Flume. Il reçoit les données (événements) des clients ou d'autres agents et les transmet à sa prochaine destination (récepteur ou agent). Flume peut avoir plus d'un agent. Le diagramme suivant représente unFlume Agent

Comme le montre le diagramme, un agent Flume contient trois composants principaux à savoir, source, channel, et sink.

La source

UNE source est le composant d'un Agent qui reçoit les données des générateurs de données et les transfère vers un ou plusieurs canaux sous la forme d'événements Flume.

Apache Flume prend en charge plusieurs types de sources et chaque source reçoit des événements d'un générateur de données spécifié.

Example - Source Avro, source Thrift, source Twitter 1%, etc.

Canal

UNE channelest un stockage transitoire qui reçoit les événements de la source et les met en mémoire tampon jusqu'à ce qu'ils soient consommés par les puits. Il agit comme un pont entre les sources et les puits.

Ces canaux sont entièrement transactionnels et peuvent fonctionner avec n'importe quel nombre de sources et de puits.

Example - Canal JDBC, canal du système de fichiers, canal mémoire, etc.

Évier

UNE sinkstocke les données dans des magasins centralisés comme HBase et HDFS. Il consomme les données (événements) des canaux et les livre à la destination. La destination du récepteur peut être un autre agent ou les magasins centraux.

Example - évier HDFS

Note- Un agent de canal peut avoir plusieurs sources, puits et canaux. Nous avons répertorié toutes les sources, puits et canaux pris en charge dans le chapitre de configuration Flume de ce tutoriel.

Composants supplémentaires de Flume Agent

Ce que nous avons discuté ci-dessus sont les composants primitifs de l'agent. En plus de cela, nous avons quelques composants supplémentaires qui jouent un rôle essentiel dans le transfert des événements du générateur de données vers les magasins centralisés.

Intercepteurs

Les intercepteurs sont utilisés pour modifier / inspecter les événements de canal qui sont transférés entre la source et le canal.

Sélecteurs de canaux

Ceux-ci sont utilisés pour déterminer quel canal doit être choisi pour transférer les données en cas de canaux multiples. Il existe deux types de sélecteurs de canaux -

  • Default channel selectors - Ils sont également connus sous le nom de sélecteurs de canaux de réplication, ils répliquent tous les événements de chaque canal.

  • Multiplexing channel selectors - Ceux-ci déterminent le canal pour envoyer un événement basé sur l'adresse dans l'en-tête de cet événement.

Processeurs d'évier

Ceux-ci sont utilisés pour appeler un récepteur particulier du groupe sélectionné de puits. Ils sont utilisés pour créer des chemins de basculement pour vos récepteurs ou des événements d'équilibrage de charge sur plusieurs récepteurs d'un canal.