可靠的,可扩展的大数据搬运系统,从数据生产者到数据最终目的地之间充当缓冲的角色,平衡数据生产者和消费者,提供稳定的流状态。apache
主要的目的地以hdsf以及hbase为主。api
相似的有apache kafka以及facebook的scribe。数组
把数据存储到hdfs或者hbase并非简单地调用api那样简单,这里得考虑各类复杂的场景,好比并发写入的量以及hdfs及hbase的系统压力,网络延迟等等问题。网络
flume设计为灵活的分布式系统,提供可定制化的管道,保证不会丢失数据,提供持久的channel并发
每一个agent包括source、channel、sink三大部分
)source拦截器,修改或删除事件分布式
Avro Source
Exec Source
Spooling Directory Source
NetCat Source
Sequence Generator Source
Syslog Sources
Syslog TCP Source
Multiport Syslog TCP Source
Syslog UDP Source
HTTP Source大数据
channel过滤器/选择器(对事件应用过滤条件,决定事件应该写入到哪一个source附带的channel中
)spa
内置channel设计
Memory Channel
File Channel
JDBC Channelcode
channel处理器(处理事件写入channel
)
sink运行器(事件处理分发
)
sink组(包含多个sink
)
sink处理器(从channel取数据写入到目的地
)
内置sink
HDFS Sink
Logger Sink
Avro Sink
IRC Sink
File Roll Sink
Null Sink
HBaseSinks
ElasticSearchSink
flume把数据表示为事件,事件包括byte数组的主体以及map形式的报头(路由信息
)
内置拦截器
Timestamp Interceptor
Host Interceptor
Static Interceptor
UUID Interceptor
Morpline Interceptor
Regex Filtering Interceptor
Regex Extractor Interceptor
数据能够表示为多个独立记录
实时推送持续并且量级很大的数据流(若是每几个小时有几G的数据,不损害hdfs,不必部署flume
)