乐趣区

关于flume:Flume日志采集框架构成组件

框架结构

Flume 的外围是把数据从数据源收集过去,再送到目的地。为了保障输送肯定胜利,在送到目的地之前,会先缓存数据,待数据真正达到目的地后,删除本人缓存的数据。

Flume 分布式系统中最外围的角色是 agent,flume 采集零碎就是由一个个 agent 所连接起来造成。

flume 形成组件

Client

Client 生产数据,运行在一个独立的线程。

Event

一个数据单元,音讯头和音讯体组成。(Events 能够是日志记录、avro 对象等。)

Flow

Event 从源点达到目标点的迁徙的形象。

Agent 构造

Flume 运行的外围是 Agent。Flume 以 agent 为最小的独立运行单位。一个 agent 就是一个 JVM。它是一个残缺的数据收集工具,含有三个外围组件,别离是 source、channel、sink。通过这些组件,Event 能够从一个中央流向另一个中央,如下图所示。

Source

Source 是数据的收集端,负责将数据捕捉后进行非凡的格式化,将数据封装到事件(event)里,而后将事件推入 Channel 中。Flume 提供了很多内置的 Source,反对 Avro,log4j,syslog 和 http post(body 为 json 格局)。能够让应用程序同已有的 Source 间接打交道,如 AvroSource,SyslogTcpSource。如果内置的 Source 无奈满足需要,Flume 还反对自定义 Source。

Channel

Channel 是连贯 Source 和 Sink 的组件,大家能够将它看做一个数据的缓冲区(数据队列),它能够将事件暂存到内存中也能够长久化到本地磁盘上,直到 Sink 解决完该事件。介绍两个较为罕用的 Channel,MemoryChannel 和 FileChannel。

Sink

Sink 从 Channel 中取出事件,而后将数据发到别处,能够向文件系统、数据库、hadoop 存数据,也能够是其余 agent 的 Source。在日志数据较少时,能够将数据存储在文件系统中,并且设定肯定的工夫距离保留数据。

关键词:大数据培训

退出移动版