Flume---日志收集系统

一、什么是FLume?

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志收集、聚合、传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。
Flume最主要的作用就是实时读取服务器本地磁盘的数据,将数据写到HDFS上。

二、Flume的结构:

Agent	组成架构
Flume中最简单的部署单元是Flume Agent,Agent是一个java应用程序,接受并生产数据并缓存数据,直至最终写入到其他Agent中或是存储系统中。
Flume Agent又由Source、Channel、Sink三部分组成:
Source:
从数据发生器接收数据,并将接收的数据以Flume的jevent的格式传送给一个或多个通道channel。
Channel:
它是一种短暂的存储容器,它将source处接收道德jevent格式的数据缓存起来,直到它们被sink消费掉,它在source和sink之间起着桥梁作用,channel是一个完整的事务,这一点保证了数据在收发时的一致性,并且它可以和任意数量的source和sink进行连接。
Flume自带的channel有两种:Memory channelFile channel, Memory channel是内存中的队列,通常在不需要考虑数据丢失的情况使用。File channel将所有事件写到磁盘,不会丢失数据。
Sink:
sink将数据存储到集中存储器比如Hbase和HDFS上,它从channels消费数据并将其传递给目标地,目标地可能是另一个Sink,也可能是HDFS,Hbase。
Event:
Flume数据传输的基本单元,以事件的形式将数据从源头送到目的地。

三、Flume的拓展结构:

前文提到source、channel、sink的连接并不是唯一的,所以决定它的结构也并不唯一。
1.多代理流程(Flume–>Flume)
Flume Agent连接
2.多级流(单源多出口:–>HDFS & -->JSM -->Flume)
单source多channel、sink
3.load balcnce功能(单源多负载)
Flume负载均衡
4.流的合并(多源单出口)
Flume Agent聚合

发布了13 篇原创文章 · 获赞 14 · 访问量 660

猜你喜欢

转载自blog.csdn.net/LCY_1013/article/details/104698751