Apache Flume - Konfiguration
Nach der Installation von Flume müssen wir es mithilfe der Konfigurationsdatei konfigurieren, bei der es sich um eine Java-Eigenschaftendatei handelt key-value pairs. Wir müssen Werte an die Schlüssel in der Datei übergeben.
In der Flume-Konfigurationsdatei müssen wir -
- Benennen Sie die Komponenten des aktuellen Agenten.
- Beschreiben / Konfigurieren der Quelle.
- Beschreiben / Konfigurieren der Spüle.
- Beschreiben / Konfigurieren des Kanals.
- Binden Sie die Quelle und die Senke an den Kanal.
Normalerweise können wir mehrere Agenten in Flume haben. Wir können jeden Agenten anhand eines eindeutigen Namens unterscheiden. Und unter diesem Namen müssen wir jeden Agenten konfigurieren.
Benennen der Komponenten
Zunächst müssen Sie die Komponenten wie Quellen, Senken und Kanäle des Agenten benennen / auflisten, wie unten gezeigt.
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name
Flume unterstützt verschiedene Quellen, Senken und Kanäle. Sie sind in der folgenden Tabelle aufgeführt.
Quellen | Kanäle | Waschbecken |
---|---|---|
|
|
|
Sie können jeden von ihnen verwenden. Wenn Sie beispielsweise Twitter-Daten mithilfe einer Twitter-Quelle über einen Speicherkanal an eine HDFS-Senke übertragen, und die ID des AgentennamensTwitterAgent, dann
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
Nachdem Sie die Komponenten des Agenten aufgelistet haben, müssen Sie die Quelle (n), Senke (n) und Kanal (e) beschreiben, indem Sie Werte für ihre Eigenschaften angeben.
Beschreibung der Quelle
Jede Quelle verfügt über eine separate Liste von Eigenschaften. Die Eigenschaft "Typ" ist allen Quellen gemeinsam und wird verwendet, um den Typ der von uns verwendeten Quelle anzugeben.
Zusammen mit der Eigenschaft "Typ" müssen die Werte aller angegeben werden required Eigenschaften einer bestimmten Quelle, um sie zu konfigurieren, wie unten gezeigt.
agent_name.sources. source_name.type = value
agent_name.sources. source_name.property2 = value
agent_name.sources. source_name.property3 = value
Zum Beispiel, wenn wir die twitter sourceIm Folgenden sind die Eigenschaften aufgeführt, für die wir Werte bereitstellen müssen, um sie zu konfigurieren.
TwitterAgent.sources.Twitter.type = Twitter (type name)
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
Das Waschbecken beschreiben
Genau wie die Quelle verfügt jede Senke über eine separate Liste von Eigenschaften. Die Eigenschaft "Typ" ist allen Senken gemeinsam und wird verwendet, um den Typ der von uns verwendeten Senke anzugeben. Zusammen mit der Eigenschaft "Typ" ist es erforderlich, Werte für alle bereitzustellenrequired Eigenschaften einer bestimmten Senke, um sie zu konfigurieren, wie unten gezeigt.
agent_name.sinks. sink_name.type = value
agent_name.sinks. sink_name.property2 = value
agent_name.sinks. sink_name.property3 = value
Zum Beispiel, wenn wir überlegen HDFS sinkIm Folgenden sind die Eigenschaften aufgeführt, für die wir Werte bereitstellen müssen, um sie zu konfigurieren.
TwitterAgent.sinks.HDFS.type = hdfs (type name)
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data
Den Kanal beschreiben
Flume bietet verschiedene Kanäle zum Übertragen von Daten zwischen Quellen und Senken. Daher ist es zusammen mit den Quellen und den Kanälen erforderlich, den im Agenten verwendeten Kanal zu beschreiben.
Um jeden Kanal zu beschreiben, müssen Sie die erforderlichen Eigenschaften wie unten gezeigt festlegen.
agent_name.channels.channel_name.type = value
agent_name.channels.channel_name. property2 = value
agent_name.channels.channel_name. property3 = value
Zum Beispiel, wenn wir überlegen memory channelIm Folgenden sind die Eigenschaften aufgeführt, für die wir Werte bereitstellen müssen, um sie zu konfigurieren.
TwitterAgent.channels.MemChannel.type = memory (type name)
Binden der Quelle und der Senke an den Kanal
Da die Kanäle die Quellen und Senken verbinden, müssen beide wie unten gezeigt an den Kanal gebunden werden.
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name
Das folgende Beispiel zeigt, wie Sie die Quellen und Senken an einen Kanal binden. Hier betrachten wirtwitter source, memory channel, und HDFS sink.
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel
Starten eines Flume Agent
Nach der Konfiguration müssen wir den Flume-Agenten starten. Es wird wie folgt gemacht -
$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
wo -
agent - Befehl zum Starten des Flume-Agenten
--conf ,-c<conf> - Verwenden Sie die Konfigurationsdatei im Verzeichnis conf
-f<file> - Gibt einen Konfigurationsdateipfad an, falls dieser fehlt
--name, -n <name> - Name des Twitter-Agenten
-D property =value - Legt einen Java-Systemeigenschaftswert fest.