Flume应用
Flume是一个分布式、可靠、高可用的海量日志采集、聚合和传输的系统。
Flume系统中核心的角色是agent,agent本身是一个Java进程,一般运行在日志收集节点。一个agent内部有三个组件:
· Source:采集源,用于跟数据源对接,以获取数据;
· Channel:agent内部的数据传输通道,用于从source将数据传递到sink;
· Sink:下沉地,采集数据的传送目的,用于往下一级agent传递数据或者往最终存储系统传递数据
在整个数据的传输的过程中,流动的是event,它是Flume内部数据传输的最基本单元。
【工作原理】:
常见的Source、Channel、Sink类型有:
【安装 · 配置Flume环境】:
(1)https://flume.apache.org/download.html
下载flume版本
(2)解压缩,进入其bin目录,复制路径
(3)win+R 打开命令行运行界面(进入指定目录)
(4)由于apache-flume运行在java环境下,需配置JDK 环境
A、命令行界面查看java安装路径 where java
B、配置环境变量
方法一、配置JAVA_HOME (只需到JAVA环境下,无需进入bin执行目录)
然后在将JAVA_HOME配置到环境变量PATH中(PATH需要配置到bin目录级别)
(bin 为可执行文件的目录)
方法二、
直接在PATH中配置java路径
直接把JAVA_HOME展开,放在PATH中,到bin目录级别
(5)运行查看flume是否安装成功(如下所示,即为成功)
【案例实现与分析】
启动Flume监听端口
【参考命令行】:进入D:\apache-flume-1.9.0-bin目录下(bin目录的前一级)
.\bin\flume-ng agent --conf .\conf --conf-file .\conf\example.conf --name a1 -property flume.root.logger=INFO,console
【参数说明】:
(1)–conf .\conf:表示配置文件存储在conf/目录
(2)–name a1 :表示给agent起名为a1
(3)–conf-file .\conf\example.conf:flume本次启动读取的配置文件是在conf文件夹下的example.conf文件。
(4)flume.root.logger=INFO,console :flume.root.logger参数属性值,并将控制台日志打印级别设置为INFO级别。日志级别包括:log、info、warn、error。
【安装telnet】:实现对单端口的监控
(telnet 是 windows自带组件)
常在使用netcat监控端口时使用
① 控制面板——程序与功能——启用或关闭window功能——开启telnet客户端
②查看是否安装成功:
案例一、netcat 数据采集(监控端口的信息)
A、监听netcat端口数据,并显示在控制台
【参考配置文件】
#设置Agent上的各个组件名称
#r1表示a1的输入源
a1.sources = r1
#k1表示a1的输出目的地
a1.sinks = k1
#c1表示a1的缓冲区
a1.channels = c1
#配置Source (数据输入源配置)
#设置a1的输入源类型为netcat端口类型
a1.sources.r1.type = netcat
#表示a1的监听的主机
a1.sources.r1.bind = localhost
#表示a1的监听的主机端口号
a1.sources.r1.port = 44444
#配置Sink (数据输出端配置)
#表示a1的输出目的地是控制台logger类型(显示在控制台)
a1.sinks.k1.type = logger
#配置Channel (数据传输通道配置)
#表示a1的channel类型是memory内存型
a1.channels.c1.type = memory
#表示a1的channel总容量是1000个event
a1.channels.c1.capacity = 1000
#表示a1的channel传输时收集到了100条event以后再去提交事务
a1.channels.c1.transactionCapacity = 100
#把Source和Sink绑定到Channel
a1.sources