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.