运行flume:flume-ng agent -c conf -f netcat to_logger.conf --name a
telnet centosl 8888
yum install telnet.x86 61
特点:
1.采集大量的log数据
2.高可靠性,高效性和高可用性
3.分布式
4.不仅可以采集转移数据,还可以对数据进行处的处理操作(对数据的简单清洗可以由flume,来完成)
flume--ng的架构组件
一个flume的服务节点被称作一个agent,一个agent里面包含:
source
channel
sink
三种组件之间通过Event来交互数据
flume,的agent之间可以链式集成
从网络端口上采集数据,并把数据显示在logo控制台
source: netcat类型
sink: logger类型
channel: memory类型
##### flume的开发过程
1.选择source, channel, sink的类型
2.创建配置文件
3.声明:source, sink, channel的名称
4.各自配置source, sink, channel的参数
5.把source, sink, channel连接起来
#### flume的source和sink的类型
source:
sink:
Avro Source:监听在agent的某个网络端口上等待接受数据并且采集,网络协议是avro的协议,当配置agent链式集成的时候一般用avro类型的source
Spooling Directory Source:监听一个文件夹,当这个文件夹下有新的文件放入进来的时候,采集这个文件的内容作为数据内容
限制1:文件进入到被监听文件夹后就不允许被编辑了
限制2:文件夹放入的文件不能重名
Taildir Source:监听多个文件,当这些文件中有新的内容出现时,会实时的被flume采集,新增的内容就是被采集的内容
NetCat TCP Source:测试时常用,和avro source的采集过程相似,只不过是采用tcp或udp协议来传输被采集的数据
kafka source:从kafka里获取数据,作为采集内容
Exec Source(不常用):接受Unix的指令指定的标准输出结果作为采集的数据内容如:cat [named pipe]
JMS Source(不常用):在消息队列中采集数据内容activemq等
Syslog Sources(不常用):采集系统日志
HDFS Sinks:把采集到的数据放到HDFS中
Hive Sinks:把采集到的数据放到hive中
HbaseSinks:把数据采集到hbase中
Kafka Sink:把采集到的数据存放到kafka中
Avro sink:把数据以Avro的协议发送出去,一般用于链式集成多个agent的场景下
Logger sink:用来测试和调试
Memory Channel:效率高速度快但数据可能会丢失
Kafka Channel:效率高速度快,数据不会丢失,配置比较复杂
File Channel:效率低会有磁盘I0,但是数据不会丢失
JDBC channel:把数据放入数据库中