Flume简介
Flume是一个高可用的、高可靠的、分布式海量日志采集、聚合和传输系统。
Apache Flume不仅只限于日志数据的采集,由于Flume采集的数据源是可定制的,因此Flume还可用于传输大量事件数据,包括但不限于网络流量数据,社交媒体生成的数据、电子邮件消息以及几乎任何可能的数据源。
Flume运行机制
Flume的核心是把数据从数据源(如Web Server)通过数据采集器(Source)收集过来,再将收集的数据通过缓冲通道(Channel)汇集到指定的接收器(Sink)。
Flume基本架构中有一个Agent(代理),它是Flume的核心角色,Flume Agent是一个JVM进程,它承载着数据从外部源流向下一个目标的3个核心组件:Source、Channel和Sink。
Source(数据采集器):用于源数据的采集(从一个Web服务器采集源数据),然后将采集到的数据写入到Channel中并流向Sink。
Channel(缓冲通道):底层是一个缓冲队列,对Source中的数据进行缓存,将数据高效、准确地写入Sink,待数据全部到达Sink后,Flume就会删除缓存通道中的数据。
Sink(接收器):接收并汇集流向Sink的所有数据,根据需求,可以直接进行集中式存储(如采用HDFS进行存储),也可以继续作为数据源传入其他远程服务器或者Source中。
Flume安装配置
1、flume下载地址(选择所需的版本进行下载)
Index of /dist/flume (apache.org)https://archive.apache.org/dist/flume/
2、将下载的安装包上传到虚拟机
3、将安装包进行解压(根据自己版本
tar zxvf apache-flume-1.8.0-bin.tar.gz
4、重命名为flume
5、配置
5.1)flume-env.sh配置
进入flume的目录中conf目录下的flume-env.sh系统环境配置文件,在里面配置Flume所依赖的JAVA_HOME。
在conf目录中默认没有该文件,需要先“cp flume-env.sh.template flume-env.sh”,然后打开flume-env.sh文件配置JAVA_HOME
1 cp flume-env.sh.template flume-env.sh
2 vim flume-env.sh
3 在文件中添加:export JAVA_HOME = /jdk的路径
4 保存退出
5.2)Flume系统环境变量配置
1 vim /etc/profile
2 添加以下内容:
export FLUME_HOME = /flume的路径
export PATH = $ PATH:$FLUME_HOME/bin
3 保存退出
4 刷新配置文件: source /etc/profile
Flume入门使用
1.配置Flume采集方案
因为Flume要采集数据的类型和源头多种多样,并且根据开发需求还要进行不同类型的数据传输和汇总。
为此,根据实际业务需求,Flume专门设计了匹配不同数据类型和传输要求的Flume Source、Flume Channel 和 Flume Sink。