1、flume是一个分布式的海量日志的高效收集、聚合、移动/传输的框架。它既可以收集为离线数据,也可以收集到流处理系统。
2、Agent <== 一个Flume的最核心的组件
3、flume三大核心组件
a.Source:负责从源端采集数据,常用的Source有exec/Spooling Directory(监控文件夹)/Taildir Source/NetCat
b.Channel:负责缓存从Source端来的数据,常用的Channel有Memory/File
c.Sink:负责将从Channel而来的数据写到目标端,常用的Sink有HDFS/Logger/Avro/Kafka
Source+Channel+Sink=Agent,数据以event的形式从Source传送到Sink端
4、常用场景
Flume ==> HDFS ==> BATCH ......
Flume ==> Kafka ==> Streaming/Storm/Flink .....
./flume-ng --help
6、小文件和调优
hdfs.rollInterval 根据时间滚动
hdfs.rollSize 根据文件大小滚动
hdfs.rollCount 根据event数量滚动
hdfs.batchSize
hdfs.codeC
hdfs.fileType