1、什么是flume
2、为什么需要flume
3、flume特性
4、Flume Agent简单架构

Agent结构
Agent:Agent是Flume中的核心组件,用来收集数据。一个Agent就是一个JVM进程,它是Flume中最小的独立运行的单元。
在Agent中有三个组件,分别为Source,Channel,Sink
Flume Event
Event:在flume中,event是最小的数据单元,由header和body组成 event 是 是 flume
中处理消息的基本单元,个 由零个或者多个 header 和正文 body 组成 。 Header 是 是 key/value 形式的
, 可以用来制造路由决策或携带其他结构化信息( 如事件的时间戳或 事件来源的服务器主机名)和 。你可以把它想象成和 HTTP
头一样提供相同的功能—— 通过该方法 来传输正文之外的额外信息。 Body 是一 个字节数组 ,包含了实际的内容。 flume
提供的同 不同 source 会给其生成的 event 添加不同的 header
Source:数据源。负责将数据捕获后进行特殊的格式化,然后再封装在Event中,再将数据推入到Channel中
常见类型: :avro 、exec、 jms、spooling directory、source 、kafka 、netcat 等
Channel:连接source和sink的组件,可以理解为数据缓冲区(数据队列),可以将event暂存在内存上,也可以持久化到本地磁盘上,直到sink消费完。
常见类型:Memory、JDBC、File等
Sink:数据下沉。从channel中取出数据后,分发到别的地方,比如HDFS或者HBase等,也可以是其他Agent的source。当日志数据量小的时候,可以将数据存在文件系统中,并设定一定的时间间隔来存储数据。
常见类型:HDFS、Logger、File Roll、Avro、Thrift、HBase等
Source、Channel和Sink的类型具体说明参照官网用户指南
一个或者多个Agent连接就形成了流,流将数据推送到了另一个Agent,最终将数据推送到存储或者索引系统。
发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/224916.html原文链接:https://javaforall.net
