Gráfica, podemos ver, Canal de flujo puede soportar una variedad de almacenamiento, sólo para nombrar unos HDFS y Kafka (tales como: almacena el registro más reciente semana, y proporcionar secuencia de registro en tiempo real al sistema de tormenta).
1, asignación de funciones
Canal de flujo de colector y el Agente distribuido en la siguiente tabla:
nombre |
ANFITRIÓN |
papel |
agente1 |
node01 |
Servidor web |
Collector1 |
node02 |
AgentMstr1 |
Collector2 |
node03 |
AgentMstr2 |
Como se muestra en la figura, los flujos de datos en el Collector1 agente1 y Collector2, en sí Flume MAL proporciona mecanismos de conmutación por error, y puede cambiar automáticamente la recuperación. En la figura, hay tres servidores tienen un registro ubicados en diferentes habitaciones, es necesario recoger todos los registros se almacenan en un clúster. Aquí desarrollamos una configuración de clúster Flume GN
2, el nodo 01 de instalación de configuración canal con una copia de la escritura de archivos
El canal máquina node03 arriba y el catálogo de archivo del paquete de instalación de copia dos máquinas de producción superior a node01
node03 máquina ejecute el siguiente comando
cd / export / servidores
scp -r Apache-canal-1.6.0-cdh5.14.0-bin / node01: $ PWD
cd / exportación
scp -r conchas / taillogs / node01: $ PWD
archivo de configuración del agente de configuración de la máquina node01
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
vim agent.conf
#agent1 name
agent1.channels = c1
agent1.sources = r1
agent1.sinks = k1 k2
#
##set gruop
agent1.sinkgroups = g1
##set sink group
agent1.sinkgroups.g1.sinks = k1 k2
#
agent1.sources.r1.type = exec
agent1.sources.r1.command = tail -F /export/taillogs/access_log
#
##set channel
agent1.channels.c1.type = memory
agent1.channels.c1.capacity = 1000
agent1.channels.c1.transactionCapacity = 100
## set sink1
agent1.sinks.k1.type = avro
agent1.sinks.k1.hostname = node02
agent1.sinks.k1.port = 52020
#
## set sink2
agent1.sinks.k2.type = avro
agent1.sinks.k2.hostname = node03
agent1.sinks.k2.port = 52020
#
##set failover
agent1.sinkgroups.g1.processor.type = failover
agent1.sinkgroups.g1.processor.priority.k1 = 2
agent1.sinkgroups.g1.processor.priority.k2 = 1
agent1.sinkgroups.g1.processor.maxpenalty = 10000
#
agent1.sources.r1.channels = c1
agent1.sinks.k1.channel = c1
agent1.sinks.k2.channel = c1
La conmutación por error maxpenalty tiempo predeterminado
3, node02 y node03 configuración flumecollection
node02 máquina para modificar el archivo de configuración
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
la collector.conf
#set Agent name
a1.sources = r1
a1.channels = c1
a1.sinks = k1
## other node,nna to nns
a1.sources.r1.type = avro
a1.sources.r1.bind = node02
a1.sources.r1.port = 52020
##set channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#
##set sink to hdfs
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path= hdfs://node01:8020/flume/failover/
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
node03机器修改配置文件
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin/conf
vim collector.conf
#set Agent name
a1.sources = r1
a1.channels = c1
a1.sinks = k1
## other node,nna to nns
a1.sources.r1.type = avro
a1.sources.r1.bind = node03
a1.sources.r1.port = 52020
##set channel
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
#
##set sink to hdfs
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path= hdfs://node01:8020/flume/failover/
a1.sources.r1.channels=c1
a1.sinks.k1.channel=c1
4, inicio de la secuencia de comandos
Arrancar la máquina por encima del canal node03
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin
bin / agente de canal-ng -n a1 -c conf -f conf / collector.conf -Dflume.root.logger = DEBUG, consola
Arrancar la máquina por encima del canal node02
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin
bin / agente de canal-ng -n a1 -c conf -f conf / collector.conf -Dflume.root.logger = DEBUG, consola
Arrancar la máquina por encima del canal node01
cd /export/servers/apache-flume-1.6.0-cdh5.14.0-bin
bin / agente de canal-ng -n agente1 -c conf -f conf / agent.conf -Dflume.root.logger = DEBUG, consola
se genera archivo de script de arranque de la máquina node01
cd / export / conchas
sh tail-file.sh
5, probar los fallos
La prueba de Let en clúster de alta disponibilidad Flume GN (failover). El escenario: Nosotros agente1 subir archivos de nodos, ya que tenemos el derecho de re-configurar Collector1 más grande que Collector2, por lo que la prioridad Collector1 recogido y cargado en el sistema de almacenamiento. Entonces matamos fuera Collector1, en este momento hay trabajo Collector2 responsable de reunir registro de subidas, y luego reanudar manualmente servicio del nodo Collector1 Canal de flujo, de nuevo en agente1 último archivo encontró Collector1 prioridad de recuperación de la colección. DETALLADA tema como sigue:
Collector1 carga prioritaria
Vista previa de HDFS archivos de registro del clúster
Collector1 tiempo de inactividad, Collector2 obtener el permiso prioridad a la carga
Reiniciar servicio Collector1, Collector1 recuperar el permiso a la prioridad de subida