Apache Flume - NetCat-Quelle

In diesem Kapitel wird anhand eines Beispiels erläutert, wie Sie Ereignisse generieren und anschließend in der Konsole anmelden können. Dafür verwenden wir dieNetCat Quelle und die logger sinken.

Voraussetzungen

Um das in diesem Kapitel bereitgestellte Beispiel auszuführen, müssen Sie es installieren Flume.

Flume konfigurieren

Wir müssen die Quelle, den Kanal und die Senke mithilfe der Konfigurationsdatei in der Konfiguration konfigurieren confMappe. Das in diesem Kapitel gegebene Beispiel verwendet aNetCat Source, Memory channel, und ein logger sink.

NetCat-Quelle

Bei der Konfiguration der NetCat-Quelle müssen wir bei der Konfiguration der Quelle einen Port angeben. Jetzt hört die Quelle (NetCat-Quelle) den angegebenen Port ab und empfängt jede Zeile, die wir in diesen Port eingegeben haben, als einzelnes Ereignis und überträgt sie über den angegebenen Kanal an die Senke.

Bei der Konfiguration dieser Quelle müssen Sie Werte für die folgenden Eigenschaften angeben:

  • channels

  • Source type - Netzkatze

  • bind - Hostname oder IP-Adresse zum Binden.

  • port - Portnummer, auf die die Quelle hören soll.

Kanal

Wir benutzen die memoryKanal. Um den Speicherkanal zu konfigurieren, müssen Sie einen Wert für den Kanaltyp angeben. Im Folgenden finden Sie eine Liste der Eigenschaften, die Sie beim Konfigurieren des Speicherkanals angeben müssen.

  • type- Es enthält den Typ des Kanals. In unserem Beispiel ist der TypMemChannel.

  • Capacity- Dies ist die maximale Anzahl von Ereignissen, die im Kanal gespeichert sind. Der Standardwert ist 100. (optional)

  • TransactionCapacity- Dies ist die maximale Anzahl von Ereignissen, die der Kanal akzeptiert oder sendet. Der Standardwert ist 100. (optional).

Logger Waschbecken

Diese Senke protokolliert alle an sie übergebenen Ereignisse. Im Allgemeinen wird es zum Testen oder Debuggen verwendet. Um diese Senke zu konfigurieren, müssen Sie die folgenden Details angeben.

  • Channel

  • type - Logger

Beispielkonfigurationsdatei

Im Folgenden finden Sie ein Beispiel für die Konfigurationsdatei. Kopieren Sie diesen Inhalt und speichern Sie ihn unternetcat.conf im conf-Ordner von Flume.

# Naming the components on the current agent
NetcatAgent.sources = Netcat   
NetcatAgent.channels = MemChannel 
NetcatAgent.sinks = LoggerSink  

# Describing/Configuring the source 
NetcatAgent.sources.Netcat.type = netcat 
NetcatAgent.sources.Netcat.bind = localhost
NetcatAgent.sources.Netcat.port = 56565  

# Describing/Configuring the sink 
NetcatAgent.sinks.LoggerSink.type = logger  

# Describing/Configuring the channel 
NetcatAgent.channels.MemChannel.type = memory 
NetcatAgent.channels.MemChannel.capacity = 1000 
NetcatAgent.channels.MemChannel.transactionCapacity = 100 
 
# Bind the source and sink to the channel 
NetcatAgent.sources.Netcat.channels = MemChannel
NetcatAgent.sinks.LoggerSink.channel = MemChannel

Ausführung

Durchsuchen Sie das Flume-Ausgangsverzeichnis und führen Sie die Anwendung wie unten gezeigt aus.

$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf 
   --name NetcatAgent -Dflume.root.logger=INFO,console

Wenn alles in Ordnung ist, beginnt die Quelle, den angegebenen Port abzuhören. In diesem Fall ist es56565. Im Folgenden finden Sie eine Momentaufnahme des Eingabeaufforderungsfensters einer NetCat-Quelle, die gestartet wurde und den Port 56565 überwacht.

Daten an die Quelle übergeben

Um Daten an die NetCat-Quelle zu übergeben, müssen Sie den in der Konfigurationsdatei angegebenen Port öffnen. Öffnen Sie ein separates Terminal und stellen Sie über das eine Verbindung zur Quelle (56565) hercurlBefehl. Wenn die Verbindung erfolgreich hergestellt wurde, erhalten Sie die Meldung „connected" Wie nachfolgend dargestellt.

$ curl telnet://localhost:56565 
connected

Jetzt können Sie Ihre Daten zeilenweise eingeben (nach jeder Zeile müssen Sie die Eingabetaste drücken). Die NetCat-Quelle empfängt jede Zeile als einzelnes Ereignis und Sie erhalten eine empfangene Nachricht. “OK”.

Wenn Sie mit der Datenübergabe fertig sind, können Sie die Konsole durch Drücken von (Ctrl+C). Unten ist der Schnappschuss der Konsole angegeben, auf der wir über die Verbindung zur Quelle hergestellt habencurl Befehl.

Jede Zeile, die in die obige Konsole eingegeben wird, wird von der Quelle als einzelnes Ereignis empfangen. Da haben wir die benutztLogger Senke, diese Ereignisse werden über den angegebenen Kanal (in diesem Fall Speicherkanal) an der Konsole (Quellkonsole) angemeldet.

Der folgende Schnappschuss zeigt die NetCat-Konsole, in der die Ereignisse protokolliert werden.