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.