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.