Flume是什么?
Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。
说白了flume就是可以从某个地方收集数据,再经过一个叫channel的通道后,将数据给某个东西,下面有张结构图,流程叫agent,包含三个东西,分别是source、channel、sink,眼神好使的估计已经看出他的结构流程了,source是获取数据,channel是通道,传输数据的,sink是把数据给谁的。
agent:
source type:监控文件 监控 网络 thirft avro 或自定义(获取资源)
channle type:内存(管道—传输资源)
sink type:kafka hdfs mysql数据库 (将传输过来的资源交给谁)
接下来我们开始安装和使用flume了
1. 将flume压缩包传输到Linux的hadoop用户下
2. 将压缩包解压到opt目录下
然后就会在opt目录下看到一个文件夹
3. 配置agent
首先进入conf目录,在该目录下新建一个文件,名字为a1.conf
然后就可以使用flume了,这个就看如何配置这个a1.conf这个文件了
监听网络:
这里主要看source的参数,配置了监听的类型,监听的主机,监听主机的端口
接着我们来启动一下
./bin/flume-ng agent -c conf -f conf/a1.conf -n a1 -Dflume.root.logger=INFO,console
然后我们就远程到python这台主机上,回车一下就可以进行监听了,可以任意发送数据,flume那边都能看到
监听文件:
和上面一样,只需要改动数据的来源端即source的配置即可,设置路径为/home/hadoop/a1.test,所以我们要新建一个名为a1.test的文件
接着我们启动flume
然后我们对a1.test文件进行写操作
随即启动flume的那个窗口会出现一个感叹号,说明进行了操作,然后我们就会看到我们写入的信息
也可看下该文件里面的数据
监听目录:
只需修改source即可
这里我们写了一个文件夹为a1_test,所以在该路径下新建这个文件夹
接着启动flume
新建一个文件名为aaa
顺便再写点数据在里面
esc+shift+ZZ,保存并退出
然后将该文件移动到我们监听的那个目录里面去
随后便发现我们写入的数据