1.Flume介绍
Flume是一种分布式、可靠且可用的服务,用于有效地收集、聚合和移动大量日志数据。它是基于流数据的灵活架构。它具有高可靠性机制和许多故障转移及恢复机制,具有强大的容错能力。它使用简单的可扩展数据模型,允许在线分析应用程序。
2.Flume架构
Flume-ng只有一个角色的节点:Agent角色。Agent角色有Source、Channel、Sink组成。
- Source:用于采集数据,Source是产生数据流的来源方,同时将产生的数据流传输到Channel。
- Channel:连接Sources和Sinks,这个管道类似与一个队列。
- Sink:从Channels收集数据,将数据写到目标源,可以是下一个Source也可以是HDFS或HBASE。
Event是Flume数据传输的基本单元,Flume以Event的形式将数据从源头传送到最终目的地。Event由(可选的)Header和载有数据的一个Byte Array组成。
- 载有的数据对Flume是不透明的
- Header是容纳了key-value的无序集合,key在集合内是唯一的
- Header可以在上下文路由中扩展