1 序言
1.1 概述
Apache Flume 是一个分布式的、可靠的,并且可用于有效的收集,聚合和移动来自许多不同来源的大量的日志数据到一个集中式数据存储系统。
Apache Flume的使用并不仅仅受限于日志数据的聚合。由于数据源是可定制的,Flume可以用来传输大量的事件数据,包括但是不局限于网络流量数据,社交媒体产生的数据,邮件和几乎任何数据源。
Apache Flume 是Apache软件基金会的一个顶级项目。目前有两个使用的版本,0.9.x版本和1.x版本。该文档也适用于1.4版本。
1.2 系统需求
java运行环境——1.6版本以上(推荐java 1.7)
内存——发送端,通道,接收端使用的配置的足够的内存空间
磁盘空间——通道,接收端使用的配置的足够的磁盘空间
目录权限——agent对目录的读写权限
1.3体系结构
1.3.1 数据流模型
一个单位的数据流定义为flume事件,它包括一个字节的有效负载和一组可选的字符串属性。一个flume代理是一个(JVM)过程,是让该事件从外部源流动到下一个目的地的组件。
一个Flume源消费由外部数据源例如web服务器传给它的事件。外部数据源将数据以一种目标flume源能够识别的格式发送给flume。
1.3.2 复杂流
1.3.3 可靠性
1.3.4 可恢复性
2 安装
2.1 安装一个代理
Flume代理的配置信息存储在本地的一个配置文件中。这是一个遵循java属性文件格式的text文件。在一个配置文件中可以指定一个或者多个代理的配置。配置文件包括一个代理中的每个源,接收器,信道的特性和它们如何连接在一起形成数据流。