一、Flume产生背景
各种Server(WebServer/ApplicationServer)分散在各个机器上,想要在大数据平台Hadoop进行统计分析,日志如何收集到Hadoop平台上,可以采用Flume。
二、Flume概述
分布式、高可靠、高可用的服务,用于分布式的海量日志的高效收集、聚合、移动。其容错性、可靠性、扩展性、管理性等非常好。
三、Flume架构及核心组件
1)官网架构
2)核心组件
Source:收集
Channel:聚集
Sink:输出
Flume实践
四、实践:将A服务器上的日志实时采集到B服务器上
1)条件:两台服务器:slave01(A)、slave02(B)
2)类型选型:跨节点传输
A:exec source + memory channel + avro sink
B:avro source + memory channel + logger sink
3)配置文件:服务器A
4)配置文件:B
5)开启flume
先启动B,再启动A,否则会报连接被拒绝的错误。
启动B
flume-ng agent --name a1 --conf /home/gxx/apache-flume-1.8.0-bin/conf --conf-file /home/gxx/apache-flume-1.8.0-bin/conf/A-exec-B-logger.conf -Dflume.root.logger=INFO,console
启动A
flume-ng agent --name a1 --conf /home/gxx/apache-flume-1.8.0-bin/conf --conf-file /home/gxx/apache-flume-1.8.0-bin/conf/A-exec-B-logger.conf -Dflume.root.logger=INFO,console
6)往A的test.txt文件输入文本,会在B的控制台处看到
echo spark>>test.txt
7)注意⚠️
- 先启动B,再启动A,否则会报连接被拒绝的错误。
- A的sink是hostname,B的source是bind