A, Canal de flujo de datos aceptado telent
El primer paso : el desarrollo de la configuración del archivo
vim /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf/netcat-logger.conf
# Definir este agente en el nombre de cada componente
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置source组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.52.120
a1.sources.r1.port = 44444
# 描述和配置sink组件:k1
a1.sinks.k1.type = logger
# 描述和配置channel组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置source channel sink之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
parámetros de canal explican:
Capacidad: El número máximo predeterminado de evento en el canal puede ser almacenado
trasactionCapacity: Máximo puede obtener de cada fuente, o para una serie de receptor de sucesos
Paso dos : el archivo de configuración de inicio
programa de adquisición de perfil especificado , se inicia agente de canal en el nodo correspondiente
En primer lugar con uno de los programas más sencillo ejemplo para probar si el ambiente normal
agente de principio a recoger datos
bin/flume-ng agent -c conf -f conf/netcat-logger.conf -n a1 -Dflume.root.logger=INFO,console
directorio de archivos de configuración conf -c canal designado propia
-f conf sistema de recogida designado / netcat-logger.con hemos descrito
A1 -n especifica el nombre de nuestro agente
El tercer paso : Instalar telent prepararse para la prueba
máquina Node02 montado sobre el mismo en un cliente Telnet para la transmisión de datos analógicos
yum -y install telnet
telnet node03 44444 # analógico de transmisión de datos por medio de Telnet
En segundo lugar, el catálogo de la colección de HDFS
dIBUJOS:
Colección necesita: un servidor en un directorio específico, se continuará generando nuevos archivos cada vez que aparecen nuevos archivos, tenemos que cobrar a los archivos HDFS ir
Según los requisitos, en primer lugar definir los siguientes tres elementos principales
- componentes de datos de origen, es decir, la fuente de directorios de archivos - Monitor: spooldir
spooldir características:
1, la vigilancia de un directorio, siempre que el nuevo archivo aparece en el directorio, se captará a los contenidos del archivo
2, completado los documentos de adquisición, será agente de añadir automáticamente un sufijo: Completo
3, directorio objeto de seguimiento no permite archivos con los mismos nombres repetidos
- Hundimiento componentes, a saber hundir - sistema de archivos HDFS: hdfs hunden
- Canal de montaje, es decir channel-- File canal de memoria disponible de canal puede también ser utilizado
canal desarrollo del perfil
Escribir archivo de configuración:
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
mkdir -p / exportación / servidores / dirfile
Vine spooldir.conf
# Name the components on this agent
a1.sources=r1
a1.channels=c1
a1.sinks=k1
# Describe/configure the source
##注意:不能往监控目中重复丢同名文件
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/export/dir
a1.sources.r1.fileHeader = true
# Describe the sink
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://node01:8020/spooldir/
# Describe the channel
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
# Bind the source and sink to the channel
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
Inicio aforador
bin / agente -c ./conf -f ./conf/spooldir.conf -n a1 -Dflume.root.logger = INFO-ng canal, consola
Sube archivos a un directorio especificado
Cargar el archivo en un directorio diferente a lo siguiente, nota que el archivo debe ser único
cd / export / dir
En tercer lugar, los archivos de captura a HDFS
requisitos de recogida: los sistemas de negocio, tales como el uso de registro de log4j generada por el contenido del registro va en aumento, necesitamos datos anexados para el archivo de registro en la adquisición en tiempo real a hdfs
Según los requisitos, en primer lugar definir los siguientes tres elementos principales
- fuente de adquisición, a saber source-- monitores actualizaciones de archivos: 'archivo de cola -F' exec
- Hundimiento objetivos, a saber hundir - sistema de archivos HDFS: hdfs hunden
- --Channel paso de transferencia entre la fuente y el sumidero, Archivo canal de memoria disponible del canal también se puede utilizar
Definición de perfiles aforador
perfil de desarrollo node03
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
vim-cola file.conf
el contenido del perfil
a1.sources=r1
a1.channels=c1
a1.sinks=k1
# Describe/configure tail -F source1
a1.sources.r1.type=exec
a1.sources.r1.command =tail -F /export/taillogs/access_log
# Describe sink1
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=hdfs://node01:8020/spooldir/
# Use a channel which buffers events in memory
a1.channels.c1.type=memory
a1.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100
# Bind the source and sink to the channel
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
Inicio aforador
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin
bin / canal-ng agente -c conf -f conf / cola-file.conf -n agente1 -Dflume.root.logger = INFO, consola
Desarrollo shell script de cronometrado contenido de los archivos adicionales
mkdir -p / exportación / conchas /
cd / export / conchas /
vim tail-file.sh
Crear una carpeta
mkdir -p / Exportación / servidores / taillogs
script de inicio
sh /export/shells/tail-file.sh
#!/bin/bash
while true
do
date >> /export/servers/taillogs/access_log;
sleep 0.5;
done
En cuarto lugar, el agente de dos en cascada
El primer archivo de datos entre el agente responsable de la recogida, a través de la red de transmitirlas a un segundo agente, el segundo agente se encarga de recibir unos primeros datos enviados desde el agente, guardar los datos para ir por encima de hdfs
El primer paso : el nodo 02 se instala aforador
Las carpetas de archivos descomprimidos node03 aforador copiados a la máquina por encima de la parte superior de la máquina node02
cd / export / servidores
scp -r Apache-canal-1.6.0-cdh5.14.0-bin / node02: $ PWD
Paso dos : node02 configuración canal de configuración de archivos
Configurar nuestro canal en la máquina node02
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
tail-Avro-Avro-logger.conf
##################
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /export/taillogs/access_log
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
##sink端的avro是一个数据发送者
a1.sinks.k1.type = avro
a1.sinks.k1.hostname = 192.168.52.120
a1.sinks.k1.port = 4141
#Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
El tercer paso : node02 desarrollo dada la escritura de archivos de escritura de datos
Node03 copiar directamente la secuencia de comandos y datos a la siguiente node02 a, el siguiente producto node03 comando
cd / exportación
scp -r conchas / taillogs / node02: $ PWD
Paso cinco: node03 desarrollo aforador perfiles
aforador perfiles de desarrollo en la máquina node03
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
Avro come-hdfs.conf
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
##source中的avro组件是一个接收者服务
a1.sources.r1.type = avro
a1.sources.r1.bind = 192.168.52.120
a1.sources.r1.port = 4141
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Describe the sink
a1.sinks.k1.type = hdfs
a1.sinks.k1.hdfs.path = hdfs://node01:8020/avro
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
Paso Seis : orden de inicio
máquina node03 inicia el proceso aforador
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin
bin / agente de canal-ng -c conf -f conf / Avro-hdfs.conf -n a1 -Dflume.root.logger = INFO, consola
máquina node02 inicia el proceso aforador
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/
bin / agente-ng canal -c conf -f conf / cola-Avro-Avro-logger.conf -n a1 -Dflume.root.logger = INFO, consola
node02 máquina de generación de archivo de secuencia de comandos shell Kai
mkdir / export / taillogs /
cd / export / servidores / conchas
sh tail-file.sh
Más fuente y sumidero de montaje
documentos oficiales Flume
http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.14.0/FlumeUserGuide.html