Apache Flume - Fuente del generador de secuencia

En el capítulo anterior, hemos visto cómo obtener datos de la fuente de Twitter a HDFS. Este capítulo explica cómo obtener datos deSequence generator.

Prerrequisitos

Para ejecutar el ejemplo proporcionado en este capítulo, debe instalar HDFS junto con Flume. Por lo tanto, verifique la instalación de Hadoop e inicie HDFS antes de continuar. (Consulte el capítulo anterior para saber cómo iniciar HDFS).

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 unsequence generator source, una memory channel, y un HDFS sink.

Fuente del generador de secuencia

Es la fuente que genera los eventos de forma continua. Mantiene un contador que comienza desde 0 y se incrementa en 1. Se utiliza con fines de prueba. Al configurar esta fuente, debe proporcionar valores a las siguientes propiedades:

  • Channels

  • Source type - seq

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 es MemChannel.

  • 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 HDFS

Este receptor escribe datos en HDFS. Para configurar este receptor, debe proporcionar los siguientes detalles.

  • Channel

  • type - hdfs

  • hdfs.path - la ruta del directorio en HDFS donde se almacenarán los datos.

Y podemos proporcionar algunos valores opcionales basados ​​en el escenario. A continuación se muestran las propiedades opcionales del receptor HDFS que estamos configurando en nuestra aplicación.

  • fileType - Este es el formato de archivo requerido de nuestro archivo HDFS. SequenceFile, DataStream y CompressedStreamson los tres tipos disponibles con esta secuencia. En nuestro ejemplo, estamos usando elDataStream.

  • writeFormat - Puede ser texto o escribible.

  • batchSize- Es el número de eventos escritos en un archivo antes de que se vacíe en el HDFS. Su valor predeterminado es 100.

  • rollsize- Es el tamaño del archivo para activar un rollo. Su valor predeterminado es 100.

  • rollCount- Es el número de eventos escritos en el archivo antes de que se transfiera. Su valor predeterminado es 10.

Ejemplo: archivo de configuración

A continuación se muestra un ejemplo del archivo de configuración. Copie este contenido y guárdelo comoseq_gen .conf en la carpeta conf de Flume.

# Naming the components on the current agent 

SeqGenAgent.sources = SeqSource   
SeqGenAgent.channels = MemChannel 
SeqGenAgent.sinks = HDFS 
 
# Describing/Configuring the source 
SeqGenAgent.sources.SeqSource.type = seq
  
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs 
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log 
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream 
 
# Describing/Configuring the channel 
SeqGenAgent.channels.MemChannel.type = memory 
SeqGenAgent.channels.MemChannel.capacity = 1000 
SeqGenAgent.channels.MemChannel.transactionCapacity = 100 
 
# Binding the source and sink to the channel 
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.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/seq_gen.conf 
   --name SeqGenAgent

Si todo va bien, la fuente comienza a generar números de secuencia que se enviarán al HDFS en forma de archivos de registro.

A continuación se muestra una instantánea de la ventana del símbolo del sistema que recupera los datos generados por el generador de secuencias en el HDFS.

Verificando el HDFS

Puede acceder a la interfaz de usuario web de administración de Hadoop utilizando la siguiente URL:

http://localhost:50070/

Haga clic en el menú desplegable llamado Utilitiesen el lado derecho de la página. Puede ver dos opciones como se muestra en el diagrama que se muestra a continuación.

Haga clic en Browse the file system e ingrese la ruta del directorio HDFS donde ha almacenado los datos generados por el generador de secuencias.

En nuestro ejemplo, el camino será /user/Hadoop/ seqgen_data /. Luego, puede ver la lista de archivos de registro generados por el generador de secuencias, almacenados en el HDFS como se indica a continuación.

Verificación del contenido del archivo

Todos estos archivos de registro contienen números en formato secuencial. Puede verificar el contenido de estos archivos en el sistema de archivos utilizando elcat comando como se muestra a continuación.