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.