Apache Flume - Fuente NetCat

Este capítulo toma un ejemplo para explicar cómo puede generar eventos y luego registrarlos en la consola. Para esto, estamos usando elNetCat fuente y la logger lavabo.

Prerrequisitos

Para ejecutar el ejemplo proporcionado en este capítulo, debe instalar Flume.

Configuración de Flume

Tenemos que configurar la fuente, el canal y el receptor usando el archivo de configuración en el confcarpeta. El ejemplo dado en este capítulo utiliza unNetCat Source, Memory channely un logger sink.

Fuente NetCat

Al configurar la fuente de NetCat, tenemos que especificar un puerto mientras configuramos la fuente. Ahora la fuente (fuente NetCat) escucha el puerto dado y recibe cada línea que ingresamos en ese puerto como un evento individual y la transfiere al receptor a través del canal especificado.

Al configurar esta fuente, debe proporcionar valores a las siguientes propiedades:

  • channels

  • Source type - netcat

  • bind - Nombre de host o dirección IP para enlazar.

  • port - Número de puerto que queremos que escuche la fuente.

Canal

Estamos usando el memorycanal. Para configurar el canal de memoria, debe proporcionar un valor al tipo de canal. A continuación se muestra la lista de propiedades que debe proporcionar al configurar el canal de memoria:

  • type- Contiene el tipo de canal. En nuestro ejemplo, el tipo esMemChannel.

  • Capacity- Es el número máximo de eventos almacenados en el canal. Su valor predeterminado es 100. (opcional)

  • TransactionCapacity- Es el número máximo de eventos que el canal acepta o envía. Su valor predeterminado es 100 (opcional).

Fregadero del registrador

Este receptor registra todos los eventos que se le pasan. Generalmente, se utiliza con fines de prueba o depuración. Para configurar este receptor, debe proporcionar los siguientes detalles.

  • Channel

  • type - registrador

Archivo de configuración de ejemplo

A continuación se muestra un ejemplo del archivo de configuración. Copie este contenido y guárdelo comonetcat.conf en la carpeta 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

Ejecución

Navegue por el directorio de inicio de Flume y ejecute la aplicación como se muestra a continuación.

$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf 
   --name NetcatAgent -Dflume.root.logger=INFO,console

Si todo va bien, la fuente comienza a escuchar el puerto indicado. En este caso lo es56565. A continuación se muestra la instantánea de la ventana del símbolo del sistema de una fuente NetCat que se ha iniciado y está escuchando el puerto 56565.

Pasar datos a la fuente

Para pasar datos a la fuente NetCat, debe abrir el puerto que se proporciona en el archivo de configuración. Abra un terminal separado y conéctelo a la fuente (56565) usando elcurlmando. Cuando la conexión sea exitosa, recibirá un mensaje "connected" Como se muestra abajo.

$ curl telnet://localhost:56565 
connected

Ahora puede ingresar sus datos línea por línea (después de cada línea, debe presionar Enter). La fuente de NetCat recibe cada línea como un evento individual y recibirá un mensaje recibido "OK”.

Siempre que haya terminado con el paso de datos, puede salir de la consola presionando (Ctrl+C). A continuación se muestra la instantánea de la consola donde nos hemos conectado a la fuente usando elcurl mando.

Cada línea que se ingrese en la consola anterior será recibida como un evento individual por la fuente. Dado que hemos utilizado elLogger receptor, estos eventos se registrarán en la consola (consola de origen) a través del canal especificado (canal de memoria en este caso).

La siguiente instantánea muestra la consola de NetCat donde se registran los eventos.