1、Flume概述
在一个完整的离线大数据处理系统中,除了hdfs+mapreduce+hive组成分析系统的核心之外,还需要数据采集、结果数据导出、任务调度等不可或缺的辅助系统,而这些辅助工具在hadoop生态体系中都有便捷的开源框架。
- Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统
- Flume支持在日志系统中定制各类数据发送方,用于收集数据;
- Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
2. Flume的架构(5分钟)
- Flume 的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据。
- Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形成。
- 每一个agent相当于一个数据传递员,内部有三个组件
- source
- 采集组件,用于跟数据源对接,以获取数据
- channel
- 传输通道组件,缓存数据,用于从source将数据传递到sink
- sink
- 下沉组件,数据发送给最终存储系统或者下一级agent中
- source
3. Flume采集系统结构图(5分钟)
3.1 简单结构
- 单个agent采集数据
3.2 复杂结构
- 2个agent串联
- 多个agent串联
- 多个channel
2、Flume安装部署
Flume安装很简单,解压好基本上就可以使用
-
1、下载安装包
- http://archive.apache.org/dist/flume/1.8.0/
- http://archive.apache.org/dist/flume/1.8.0/
-
2、规划安装目录
- /opt/bigdata2.7
-
3、上传安装包到服务器
-
4、解压安装包到指定的规划目录
- tar -zxvf flume-1.8.0-bin.tar.gz -C /opt/bigdata2.7
-
5、重命名解压目录
- mv flume-1.8.0-bin flume-1.8.0
-
6、修改配置
-
进入到flume安装目录下的conf文件夹中
-
先重命名文件
- mv flume-env.sh.template flume-env.sh
-
修改文件,添加java环境变量
- vim flume-env.sh
export JAVA_HOME=/user/java/jdk1.8.0_141
- vim flume-env.sh
export JAVA_HOME=/user/java/jdk1.8.0_141
-
-