Apache Flume - NetCat Source
Questo capitolo prende un esempio per spiegare come generare eventi e successivamente registrarli nella console. Per questo, stiamo usando ilNetCat fonte e il logger Lavello.
Prerequisiti
Per eseguire l'esempio fornito in questo capitolo, è necessario installare Flume.
Configurazione di Flume
Dobbiamo configurare l'origine, il canale e il sink utilizzando il file di configurazione in confcartella. L'esempio fornito in questo capitolo utilizza un fileNetCat Source, Memory channele a logger sink.
NetCat Source
Durante la configurazione dell'origine NetCat, dobbiamo specificare una porta durante la configurazione dell'origine. Ora la sorgente (sorgente NetCat) ascolta la porta data e riceve ogni riga che abbiamo inserito in quella porta come un singolo evento e la trasferisce al sink attraverso il canale specificato.
Durante la configurazione di questa sorgente, è necessario fornire valori alle seguenti proprietà:
channels
Source type - netcat
bind - Nome host o indirizzo IP da associare.
port - Numero di porta su cui si desidera che la sorgente ascolti.
Canale
Stiamo usando il memorycanale. Per configurare il canale di memoria, è necessario fornire un valore al tipo di canale. Di seguito è riportato l'elenco delle proprietà che è necessario fornire durante la configurazione del canale di memoria:
type- Contiene il tipo di canale. Nel nostro esempio, il tipo èMemChannel.
Capacity- È il numero massimo di eventi memorizzati nel canale. Il suo valore predefinito è 100. (opzionale)
TransactionCapacity- È il numero massimo di eventi che il canale accetta o invia. Il suo valore predefinito è 100. (opzionale).
Logger Sink
Questo sink registra tutti gli eventi ad esso passati. In genere, viene utilizzato per scopi di test o debug. Per configurare questo sink, è necessario fornire i seguenti dettagli.
Channel
type - logger
File di configurazione di esempio
Di seguito è riportato un esempio del file di configurazione. Copia questo contenuto e salva con nomenetcat.conf nella cartella conf di 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
Esecuzione
Sfoglia la home directory di Flume ed esegui l'applicazione come mostrato di seguito.
$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf
--name NetcatAgent -Dflume.root.logger=INFO,console
Se tutto va bene, la sorgente inizia ad ascoltare la porta specificata. In questo caso, lo è56565. Di seguito è riportata l'istantanea della finestra del prompt dei comandi di una sorgente NetCat che è stata avviata e in ascolto sulla porta 56565.
Passaggio di dati all'origine
Per passare i dati alla sorgente NetCat, è necessario aprire la porta indicata nel file di configurazione. Aprire un terminale separato e connettersi alla sorgente (56565) utilizzando ilcurlcomando. Quando la connessione ha esito positivo, riceverai un messaggio "connected" come mostrato di seguito.
$ curl telnet://localhost:56565
connected
Ora puoi inserire i tuoi dati riga per riga (dopo ogni riga, devi premere Invio). La sorgente NetCat riceve ogni riga come un singolo evento e riceverai un messaggio ricevuto "OK".
Ogni volta che hai finito di passare i dati, puoi uscire dalla console premendo (Ctrl+C). Di seguito è riportata l'istantanea della console in cui ci siamo collegati alla sorgente utilizzando ilcurl comando.
Ciascuna riga inserita nella console di cui sopra verrà ricevuta come evento individuale dalla sorgente. Dal momento che abbiamo utilizzato ilLogger sink, questi eventi verranno registrati nella console (console di origine) tramite il canale specificato (canale di memoria in questo caso).
La seguente istantanea mostra la console NetCat in cui vengono registrati gli eventi.