1.简介
Flume是Cloudera提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统.
Flume支持在日志系统中定制各类数据发送方用于收集数据,同时Flume提供对数据进行简单的处理并写到各种数据接受方的能力.
当前Flume有两个版本,Flume 0.9X版本的统称 Flume-og ,Flume1.X版本的统称 Flume-ng (由于Flume-ng经过重大重构与Flume-og有很大不同,使用时请注意区分)
两个版本的区别
Flume-og采用了多Master的方式,为了保证配置数据的一致性,Flume引入了ZooKeeper用于保存配置文件,在配置文件发生变化时,ZooKeeper可以通知Flume Master节点,Flume Master间使用gossip协议同步数据.
Flume-og 中读入线程同样做写操作,如果写出慢的话将阻塞 Flume 接收数据的能力.
Flume-ng最明显的改动就是取消了集中管理配置的 Master 和 Zookeeper,变为一个纯粹的传输工具.
Flume-ng读入数据和写出数据现在由不同的工作线程处理(Runner),这种异步的设计使读入线程可以顺畅的工作而无需关注下游的任何问题.
Flume的优势
1.Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase.
2.当收集数据的速度超过写入数据的时候,此时Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供平稳的数据.
3.Flume的管道是基于事务的,保证了数据在传送和接收时的一致性.
Flume的应用场景
1.Flume可以高效的将多个网站服务器的日志信息存入HDFS/HBase中.
2..除了日志信息以外,Flume也可以用来收集规模宏大的社交网络节点事件数据(比如facebook、twitter、亚马逊)
*
本文只阐述Flum