1 Flume介绍
1.1 什么是Flume
Flume是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。可以采集文件,socket数据包、文件、文件夹、kafka等各种形式源数据,又可以将采集到的数据(下沉sink)输出到HDFS、hbase、hive、kafka等众多外部存储系统中
1.2 Flume运行机制
Flume分布式系统中最核心的角色是agent,每一个agent相当于一个数据传递员,内部有三个组件:
- Source:采集组件,用于跟数据源对接,以获取数据
- Sink:下沉组件,用于往下一级agent传递数据或者往最终存储系统传递数据
- Channel:传输通道组件,用于从source将数据传递到sink
Source 到 Channel 到 Sink之间传递数据的形式是Event事件;Event事件是一个数据流单元元。
多级agent之间串联:
2 Flume的安装部署
前提是已有hadoop环境
- 第一步:下载解压修改配置文件
复制flume-env.sh,并指定JAVA_HOME路径
tar -zxvf flume-ng-1.6.0-cdh5.14.0.tar.gz -C /opt/module/
cd /opt/module/apache-flume-1.6.0-cdh5.14.0-bin/conf
cp flume-env.sh.template flume-env.sh
vim flume-env.sh
export JAVA_HOME=/opt/module/jdk1.8.0_141
- 第二步:开发配置文件
根据数据采集的需求配置采集方