前言
提示:本机的环境为
Cent OS 6.5
Java jdk1.7
CDH 5.3.6
在此前请确保已经配置好JAVA环境!
一、Flume简介
1.什么是Flume?
Flume 是一个分布式,高可用的数据收集系统。它可以从不同的数据源收集数据,经过聚合后发送到存储系统中,通常用于日志数据的收集。Flume 分为 NG 和 OG (1.0 之前) 两个版本,NG 在 OG 的基础上进行了完全的重构,是目前使用最为广泛的版本。下面的介绍均以 NG 为基础。
上图是Flume的整体架构,外部数据源以特定格式向 Flume 发送 events (事件),当 source 接收到 events 时,它将其存储到一个或多个 channel,channe 会一直保存 events 直到它被 sink 所消费。sink 的主要功能从 channel 中读取 events,并将其存入外部存储系统或转发到下一个 source,成功后再从 channel 中移除 events。
2.三个组件详解
角色 | 简介 |
---|---|
Source | Source用于采集数据,Source是产生数据流的地方,同时Source会将产生的数据流传输到Channel |
Channel | 连接sources 和sinks ,这个有点像一个队列。 |
Sink | 从Channel收集数据,将数据写到目标源,可以是下一个Source也可以是HDFS或者HBase。 |
3.关于Event
Event是Flume数据传输的基本单元
Flume以事件的形式将数据从源头传送到最终的目的
Event由可选的header和载有数据的一个byte array构成
载有的数据对flume是不透明的
Header是容纳了key-value字符串对的无序集合,key在集合内是唯一的
Header可以在上下文路由中使用扩展
二、安装步骤
1.下载安装包
安装包可以进入Apache Flume官网进行下载http://flume.apache.org/
也可以下载CDH的发行版,也就是我用到版本,这里为方便大家直接贴上下载链接
链接:https://pan.baidu.com/s/1XZh1n-hjuxREktBJHYz__g
提取码:aef8
2.安装Flume
进入Flume下载目录,输入tar -zxvf flume-ng-1.5.0-cdh5.3.6.tar.gz -C 解压目录
完成安装。
3.修改配置文件
进入安装目录下的conf
目录,找到flume-env.sh.template
重命名为flume-env.sh
,然后修改JAVA_HOME的所在目录
将值改为自己jdk安装目录即可。
总结
Flume是一个轻量级框架,目前常用于日志收集及数据流的清洗,与他相似功能的还有Sqoop框架,Sqoop的作用主要是将关系型数据库的数据导入到Hadoop下,感兴趣的可以点击Sqoop的简介与基本使用
另外,关于Flume的进阶使用感兴趣的劳烦大家翻阅我的后面博客。