框架结构
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。在日志数据较少时,能够将数据存储在文件系统中,并且设定肯定的工夫距离保留数据。
关键词:大数据培训