一、flume的安装与部署
简介概述:全程叫Apache Flume,它 是一个分布式、高可靠、高可用的用来收集、聚合、转移不同来源的大量日志数据到中央数据仓库的工具。
系统要求:
-
java运行环境 - Java 1.8或更高版本
-
内存 - 足够的内存 用来配置Souuces、Channels和Sinks
-
硬盘空间 - 足够的硬盘用来配置Channels 和 Sinks
-
目录权限 - Agent用来读写目录的权限
安装部署:
第一步:在浏览器中下载我们电脑可用的版本,下载后到我们的虚拟机中解压上传
#解压指令
tar -zxvf 解压包名
第二步:添加我们的flume环境:进入vi /etc/proofile
第三步:进入我们安装好的flume中,切换到我们的conf中配置我们的文件地址:输入vi flume-env.sh主要的原因是添加我们的Java环境
export JAVA_HOME=我们的jdk路径地址
二、监控flume文件
理解:什么是监控我们的flume文件,方便我们在使用虚拟机的时候可以另开一台远程工具中得知另一台的进程,在监控的文件中我们最需要理解的是我们的配置设置
第一步:我们首先要进入我们的flume文件中切换到我们的目录中配置我们的conf文件,我这里给它命名为exec-file-logs.conf。【这里是我的第一台远程工具】
在这里我们需要理解flume必用的三种,source sinks 和 channels 然后启动我们的flume配置文件
注意这里的三种配置文件的组件可以通过这个网址找到我们的配置案例Flume 1.9用户手册中文版 — 可能是目前翻译最完整的版本了https://flume.liyifeng.org/
# 配置Agent a1各个组件的名称 a1.sources = r1 #Agent a1 的source有一个,叫做r1 a1.sinks = k1 #Agent a1 的sink也有一个,叫做k1 a1.channels = c1 #Agent a1 的channel有一个,叫做c1 # 配置Agent a1的source r1的属性 a1.sources.r1.type = netcat #使用的是NetCat TCP Source,这里配的是别名,Flume内置的一些组件都是有别名的,没有别名填全限定类名 a1.sources.r1.bind = localhost #NetCat TCP Source监听的hostname,这个是本机 a1.sources.r1.port = 44444 #监听的端口 # 配置Agent a1的sink k1的属性 a1.sinks.k1.type = logger # sink使用的是Logger Sink,这个配的也是别名 # 配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的 a1.channels.c1.type = memory #channel的类型是内存channel,顾名思义这个channel是使用内存来缓冲数据 a1.channels.c1.capacity = 1000 #内存channel的容量大小是1000,注意这个容量不是越大越好,配置越大一旦Flume挂掉丢失的event也就越多 a1.channels.c1.transactionCapacity = 100 #source和sink从内存channel每次事务传输的event数量 # 把source和sink绑定到channel上 a1.sources.r1.channels = c1 #与source r1绑定的channel有一个,叫做c1 a1.sinks.k1.channel = c1 #与sink k1绑定的channel有一个,叫做c1
第二步:在第二台(是第一台的复制标签用的是finalshell远程工具)的flume下创建一个文本或file文件在里面新建文本
假设我们需要在文本里输入1,12,3,4,5,6,’7,在我们的第一台中显示我们在文本里编写的东西代表成功,如下:
!!!在我们监控时,在第一台虚拟机中药输入类似于这样的代码:
flume-ng agent -n a1 --conf-file exec-file-log.conf -Dflume.root.logger=INFO,console
这里的红色字体的是我命名的conf配置文件,这边最好命名规范方便自己理解配置的是什么类型
只有当输入这串指令时才可以看到我们第二台编写的文件内容