什么是flume?
flume中文名是日志收集系统。由cloudera提供的一个分布式,高可靠,高可用的服务,用于分布式的海量日志的高效、收集聚合、移动系统,聚合和传输的系统是它的标志。简单的来说就是一个针对日志数据进行采集和汇总的工具,即把A移动到B。
flume架构介绍
flume最简单的部署单元叫flume Agent,接收或生成数据并缓存数据知道最终写入到Agent或存储到索引系统。一个flume agent合理链接多个其他的agent,也可以接收多个Agent数据,多个相互连接的Flume,构建成一个流作业。
flume agent组成: source(来源),channel(通道),sink(水槽)
source :专门接收数据,可处理各种类型,各种格式的日志数据,比如avro,exec,HTTP kafka ,Spooling Directory等
channel:是一个储存source接收到数据的缓存区(临时存放),可以还存在,memory,file,觉得不错,kafka等
sink:把数据发送到目的地,目的地可以是:HDFS、Hive、HBase、ES、Kafka、Logger等
flume运行机制
source接收到数据之后,将数据发送给channel,chanel作为一个数据缓冲区会临时存放这些数据,随后sink会将channel中的数据发送到指定的地方—-例如HDFS等,注意:只有在sink将channel中的数据成功发送出去之后,channel才会将临时数据进行删除,这种机制保证了数据传输的可靠性与安全性。