文章目录
1、Flume介绍
1.1 下载的版本
本章我们介绍的是CDH版本的Flume,不是Apache版本的。
附上下载和User Guide地址:
http://archive.cloudera.com/cdh5/cdh/5/
http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.7.0/FlumeUserGuide.html#
Apache开源的Flume:http://flume.apache.org/
下载的版本:flume-ng-1.6.0-cdh5.7.0.tar.gz
(跟cdh版本一致)
NG:1.x的版本,现在主要使用这个版本的
OG:0.9x版本,这个基本不会用了。
1.2 Flume特性
Flume是一个分布式的、高可靠的、高可用的将大批量的不同数据源的日志数据收集、聚合、移动到数据中心进行存储的系统。即是日志采集和汇总的工具。
像Logstash、FileBeat是ES栈的日志数据抽取工具,它们和Flume很类似,前者是轻量级、后者是重量级,若项目组使用的是ES,可以考虑使用它们。
Flume核心三大组件:
- Source(负责数据源的采集):Fluem提供了各种各样的Source、比如Taildir Source、NetCat、exec、Spooling Directory,同时还可以自定义Source。
- Channel(负责缓存Source来的数据):主要是memory channel和File chnannel(生产常用)
- Sink(负责将Channel里面的数据写入目标):如写入hdfs(批处理)、kafka(流处理)
Agent:,你可以理解他就是Flume节点,由上面三大组件组成。每一台Flume Agent都会设置一个自己的名字,后面的配置再讲。
Event:Flume数据传输的最小单位,一个Event就是一条记录,由head和body两个部分组成,body存储的是字节数组和实际数据。
Event: { headers:{} body: 31 37 20 69 20 6C 6F 76 65 20 79 6F 75 0D 17 i love you. }
1.3 Flume Agent框架
单Agent:
串联Agent:
并联Agent(生产常用):
多Sink Agent也很常用:
2、安装
[hadoop@vm01 software]$ tar -zxvf flume-ng-1.6.0-cdh5.7.0.tar.gz -C ../app/
配置环境变量
[hadoop@vm01 apache-flume-1.6.0-cdh5.7.0-bin]$ vi ~/.bash_profile
export FLUME_HOME=/home/hadoop/app/apache-flume-1.6.0-cdh5.7.0-bin
export PATH=$FLUME_HOME/bin:$PATH
[hadoop@vm01 apache-flume-1.6.0-cdh5.7.0-bin]$ source ~/.bash_profile
配置flume-env.sh
文件
[hadoop@vm01 conf]$ pwd
/home/hadoop/app/apache-flume-1.6.0-cdh5.7.0-bin/conf
[hadoop@vm01 conf]$ cp flume-env.sh.template flume-env.sh
[hadoop@vm01 conf]$