Apache Flume - Source NetCat
Ce chapitre prend un exemple pour expliquer comment vous pouvez générer des événements et les consigner par la suite dans la console. Pour cela, nous utilisons leNetCat source et le logger évier.
Conditions préalables
Pour exécuter l'exemple fourni dans ce chapitre, vous devez installer Flume.
Configurer Flume
Nous devons configurer la source, le canal et le puits en utilisant le fichier de configuration dans le confdossier. L'exemple donné dans ce chapitre utilise unNetCat Source, Memory channel, et un logger sink.
Source NetCat
Lors de la configuration de la source NetCat, nous devons spécifier un port lors de la configuration de la source. Maintenant, la source (source NetCat) écoute le port donné et reçoit chaque ligne que nous avons entrée dans ce port en tant qu'événement individuel et la transfère au puits via le canal spécifié.
Lors de la configuration de cette source, vous devez fournir des valeurs aux propriétés suivantes -
channels
Source type - netcat
bind - Nom d'hôte ou adresse IP à lier.
port - Numéro de port que nous voulons que la source écoute.
Canal
Nous utilisons le memorycanal. Pour configurer le canal mémoire, vous devez fournir une valeur au type du canal. Vous trouverez ci-dessous la liste des propriétés que vous devez fournir lors de la configuration du canal mémoire -
type- Il contient le type de chaîne. Dans notre exemple, le type estMemChannel.
Capacity- C'est le nombre maximum d'événements stockés dans le canal. Sa valeur par défaut est 100. (facultatif)
TransactionCapacity- C'est le nombre maximum d'événements que le canal accepte ou envoie. Sa valeur par défaut est 100. (facultatif).
Évier enregistreur
Ce récepteur enregistre tous les événements qui lui sont transmis. Généralement, il est utilisé à des fins de test ou de débogage. Pour configurer ce récepteur, vous devez fournir les détails suivants.
Channel
type - enregistreur
Exemple de fichier de configuration
Ci-dessous, un exemple de fichier de configuration. Copiez ce contenu et enregistrez-le sousnetcat.conf dans le dossier conf de 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
Exécution
Parcourez le répertoire d'accueil de Flume et exécutez l'application comme indiqué ci-dessous.
$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf
--name NetcatAgent -Dflume.root.logger=INFO,console
Si tout se passe bien, la source commence à écouter le port donné. Dans ce cas, c'est56565. Vous trouverez ci-dessous un instantané de la fenêtre d'invite de commande d'une source NetCat qui a démarré et qui écoute le port 56565.
Passer des données à la source
Pour transmettre des données à la source NetCat, vous devez ouvrir le port indiqué dans le fichier de configuration. Ouvrez un terminal séparé et connectez-vous à la source (56565) à l'aide ducurlcommander. Une fois la connexion établie, vous recevrez un message "connected" comme indiqué ci-dessous.
$ curl telnet://localhost:56565
connected
Vous pouvez maintenant saisir vos données ligne par ligne (après chaque ligne, vous devez appuyer sur Entrée). La source NetCat reçoit chaque ligne comme un événement individuel et vous recevrez un message reçu "OK».
Chaque fois que vous avez terminé de transmettre des données, vous pouvez quitter la console en appuyant sur (Ctrl+C). Ci-dessous se trouve l'instantané de la console où nous nous sommes connectés à la source en utilisant lecurl commander.
Chaque ligne entrée dans la console ci-dessus sera reçue comme un événement individuel par la source. Depuis que nous avons utilisé leLogger récepteur, ces événements seront connectés à la console (console source) via le canal spécifié (canal mémoire dans ce cas).
L'instantané suivant montre la console NetCat où les événements sont enregistrés.