最近刚开始接触并使用flume,之前只是知道flume是用于日志收集的系统,没怎么系统研究过,最近工作中要用到flume,感觉还是flume的功能还是非常强大的,官网上有个非常详细的介绍,我觉得还是看看官网的介绍就足够了,比在网上搜到的东西讲的都好,要养成看官网文档的习惯:
http://flume.apache.org/FlumeUserGuide.html
flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。
支持在日志系统中定制各类
数据
发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力,
flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink处理完该事件。Sink负责持久化日志或者把事件推向另一个Source。
flume的一些核心概念:
- Agent 使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。
- Client 生产数据,运行在一个独立的线程。