Apache Flume - Architektur

Die folgende Abbildung zeigt die grundlegende Architektur von Flume. Wie in der Abbildung gezeigt,data generators (wie Facebook, Twitter) generieren Daten, die von einzelnen Flume gesammelt werden agentsauf ihnen laufen. Danach adata collector (der auch ein Agent ist) sammelt die Daten von den Agenten, die aggregiert und in einen zentralen Speicher wie HDFS oder HBase übertragen werden.

Gerinne Ereignis

Ein event ist die Grundeinheit der darin transportierten Daten Flume. Es enthält eine Nutzlast eines Byte-Arrays, das von der Quelle zum Ziel transportiert werden soll, zusammen mit optionalen Headern. Ein typisches Flume-Ereignis hätte die folgende Struktur:

Flume Agent

Ein agentist ein unabhängiger Daemon-Prozess (JVM) in Flume. Es empfängt die Daten (Ereignisse) von Clients oder anderen Agenten und leitet sie an sein nächstes Ziel (Senke oder Agent) weiter. Flume kann mehr als einen Wirkstoff haben. Das folgende Diagramm zeigt aFlume Agent

Wie in der Abbildung gezeigt, enthält ein Flume Agent drei Hauptkomponenten, nämlich source, channel, und sink.

Quelle

EIN source ist die Komponente eines Agenten, der Daten von den Datengeneratoren empfängt und in Form von Flume-Ereignissen an einen oder mehrere Kanäle überträgt.

Apache Flume unterstützt verschiedene Arten von Quellen und jede Quelle empfängt Ereignisse von einem angegebenen Datengenerator.

Example - Avro-Quelle, Thrift-Quelle, Twitter 1% -Quelle usw.

Kanal

EIN channelist ein vorübergehender Speicher, der die Ereignisse von der Quelle empfängt und puffert, bis sie von Senken verbraucht werden. Es fungiert als Brücke zwischen den Quellen und den Senken.

Diese Kanäle sind vollständig transaktional und können mit einer beliebigen Anzahl von Quellen und Senken arbeiten.

Example - JDBC-Kanal, Dateisystemkanal, Speicherkanal usw.

Sinken

EIN sinkspeichert die Daten in zentralen Speichern wie HBase und HDFS. Es verbraucht die Daten (Ereignisse) aus den Kanälen und liefert sie an das Ziel. Das Ziel der Spüle kann ein anderer Agent oder die zentralen Geschäfte sein.

Example - HDFS-Senke

Note- Ein Gerinne kann mehrere Quellen, Senken und Kanäle haben. Wir haben alle unterstützten Quellen, Senken und Kanäle im Kapitel zur Flume-Konfiguration dieses Tutorials aufgelistet.

Zusätzliche Komponenten von Flume Agent

Was wir oben besprochen haben, sind die primitiven Komponenten des Agenten. Darüber hinaus verfügen wir über einige weitere Komponenten, die eine wichtige Rolle bei der Übertragung der Ereignisse vom Datengenerator in die zentralen Speicher spielen.

Abfangjäger

Abfangjäger werden verwendet, um Gerinne zu ändern / zu untersuchen, die zwischen Quelle und Kanal übertragen werden.

Kanalwähler

Diese werden verwendet, um zu bestimmen, welcher Kanal für die Übertragung der Daten bei mehreren Kanälen ausgewählt werden soll. Es gibt zwei Arten von Kanalwählern:

  • Default channel selectors - Diese werden auch als Replikationskanalselektoren bezeichnet. Sie replizieren alle Ereignisse in jedem Kanal.

  • Multiplexing channel selectors - Diese entscheiden den Kanal, ein Ereignis basierend auf der Adresse im Header dieses Ereignisses zu senden.

Waschbecken Prozessoren

Diese werden verwendet, um eine bestimmte Senke aus der ausgewählten Gruppe von Senken aufzurufen. Diese werden verwendet, um Failover-Pfade für Ihre Senken oder Lastausgleichsereignisse über mehrere Senken von einem Kanal zu erstellen.