Flume-三大核心组件
一、概念
Flume是一个高可用,高可靠,分布式的海量日志采集、聚合和传输的工具。
Flume中最简单的部署单元是Flume Agent,Agent是一个Java应用程序。
其中Agent包括三大核心组件,分别是source、channel和sink。
将数据从数据源采集过来,送到目的地,为保证输送成功,在送到目的地前,先缓存数据,待数据到达目的地后,删除缓存的数据。
event是数据传输的最小单元:event{headers:{},{body{}}}
二、source组件
source采集组件,对接数据源,以获取数据。
数据源包括:
Avro Source
Thrift Source
Exec Source
JMS Source
Spooling Directory Source
Taildir Source
Twitter 1% firehose Source (experimental)
Kafka Source
NetCat TCP Source
NetCat UDP Source
Sequence Generator Source
Syslog Sources
HTTP Source
Stress Source
Legacy Sources
Custom Source
Scribe Source
二、channel组件
channle组件是传输通道组件,缓存数据。
缓存方式包括:
Memory Channel
JDBC Channel
Kafka Channel
File Channel
Spillable Memory Channel
Pseudo Transaction Channel
Custom Channel
三、sink组件
sink是下沉组件,数据发送给最终存储系统或者下一级Agent。
存储系统包括:
HDFS Sink
Hive Sink
Logger Sink
Avro Sink
Thrift Sink
IRC Sink
File Roll Sink
Null Sink
HBaseSinks
MorphlineSolrSink
ElasticSearchSink
Kite Dataset Sink
Kafka Sink
HTTP Sink
Custom Sink