一,Flume概述
Flume是一个分布式,可靠的,高可用的海量日志采集,聚合和传输系统。
Flume的作用:支持在日志系统中定制各类数据的发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各数据的接受方(比如文本,HDFS,Hbase等)的功能。
二,组成
1、 Flume分布式系统中最核心的角色是agent,Flume采集系统就是由一个个agent所连接起来形成每一个agent相当于一个数据传递员,内部有三个组件:
a) Source:采集源,用于跟数据源对接,以获取数据。
source类型
b) Channel:angent内部的数据传输通道,用于从source将数据传递到sink。
channel类型
c) Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据。
sink类型
2,Event: 一个数据单元,消息头和消息体组成Flume的数据流由事件(Event)贯穿始终。(Events可以是日志记录、 avro 对象等)Event写到磁盘上,当数据传送成功后,再删除;如果数据发送失败,可以重新发送。
3,Client:Client生产数据,运行在一个独立的线程。
4,Flow: Event从源点到达目的点的迁移的抽象。
三,Flume安装环境(详见案例)
1,下载apache-flume-1.6.0-bin.tar.gz。上传到虚拟机,解压。
2,在/flume/conf下的flume-env.sh中配置JAVA_HOME。
3,根据数据采集的需求配置采集方案,描述在配置文件中(文件名可任意自定义)
4,指定采集方案配置文件,在相应的节点上启动flume agent