Flume是Apache公司旗下的一款数据采集工具。我们知道,Sqoop也是一款数据采集工具,主要用来采集关系型数据库中的数据;与Sqoop不同,Flume主要用于采集日志,这些日志的数据源种类有多种,可以是一个log文件,也可以是一个http请求等等。与Sqoop一样,Flume也是运行在Yarn平台之上,Flume在采集数据的时候也是执行的MapReduce程序。本节就来介绍一下Flume的安装和使用。
本节用到的安装介质:apache-flume-1.8.0-bin.tar.gz 提取码:lzqa
1.Flume的体系结构
Flume的官网flume.apache.org 上给出了一张Flume的体系结构的示意图,如下所示。

官网上给出的这张Flume体系结构的示意图太过于简单了,下面来详细画出Flume的体系结构的各个细节,如下图所示:

1.1数据源
Flume可以采集的数据源种类有很多,包括文件、目录、Hive、HBase、HTTP、FTP、NetCat、Kafka等等。
1.2Flume Agent
一个Agent由三大组件构成:Source组件、Chanel组件和Sink组件。它们三者的功能分别是:
- Source组件:负责采集数据;
- Chanel组件:负责缓存数据;
- Sink组件:负责保存数据;
这三大组件针对不同的数据源和目的地有不同的实现方式,如果没有现成的实现方式可用的话,Flume提供了用户自定义的方式。
更多关于三大组件的信息请参考Flume用户手册:《Flume User Guide》
1.3目的地
Flume采集到数据可以保存到很多地方,包括文件、HDFS、Hive、HBase、RDBMS等等。
2.Flume的安装配置
2.1上传Flume安装包
将Flume安装包上传到/root/tools目录下:
# ls /root/tools
apache-flume-1.8.0-bin.tar.gz
2.2解压Flume安装包
将Flume安装包解压到安装目录/root/trainings目录下:
# tar -zxvf apache-flume-1.8.0-bin.tar.gz -C /root/trainings/
2.3配置环境变量
将Flume加入到PATH环境变量中:
# vim /root/.bash_profile
FLUME_HOME=/root/trainings/apache-flume-1.8.0-bin
export FLUME_HOME
PATH=$FLUME_HOME/bin:$PATH
export PATH
使环境变量生效:
# source /root/.bash_profile
2.4测试Flume安装是否成功
使用flume-ng version命令查看Flume的版本:
# flume-ng version
Flume 1.8.0
Source code repository: https://git-wip-us.apache.org/repos/asf/flume.git
Revision: 99f591994468633fc6f8701c5fc53e0214b6da4f
Compiled by denes on Fri Sep 15 14:58:00 CEST 2017
From source with checksum fbb44c8c8fb63a49be0a59e27316833d
出现上面的版本信息证明Flume安装成功。
本节详细介绍了Flume的体系结构和安装配置过程。
网友评论