Apache Flume - Flux de données

Flume est un framework utilisé pour déplacer les données de journal dans HDFS. En général, les événements et les données de journal sont générés par les serveurs de journaux et ces serveurs sont dotés d'agents Flume. Ces agents reçoivent les données des générateurs de données.

Les données de ces agents seront collectées par un nœud intermédiaire appelé Collector. Tout comme les agents, il peut y avoir plusieurs collecteurs dans Flume.

Enfin, les données de tous ces collecteurs seront agrégées et poussées vers un magasin centralisé tel que HBase ou HDFS. Le diagramme suivant explique le flux de données dans Flume.

Flux multi-sauts

Dans Flume, il peut y avoir plusieurs agents et avant d'atteindre la destination finale, un événement peut passer par plus d'un agent. Ceci est connu commemulti-hop flow.

Flux sortant

Le flux de données d'une source vers plusieurs canaux est appelé fan-out flow. Il est de deux types -

  • Replicating - Le flux de données où les données seront répliquées dans tous les canaux configurés.

  • Multiplexing - Le flux de données où les données seront envoyées à un canal sélectionné qui est mentionné dans l'en-tête de l'événement.

Flux de ventilateur

Le flux de données dans lequel les données seront transférées de plusieurs sources vers un canal est appelé fan-in flow.

Traitement des échecs

Dans Flume, pour chaque événement, deux transactions ont lieu: une chez l'expéditeur et une chez le destinataire. L'expéditeur envoie des événements au destinataire. Peu de temps après avoir reçu les données, le destinataire effectue sa propre transaction et envoie un signal «reçu» à l'expéditeur. Après avoir reçu le signal, l'expéditeur valide sa transaction. (L'expéditeur ne validera pas sa transaction tant qu'il n'aura pas reçu un signal du destinataire.)