Flume的使用

        其具体使用可参考官 http://flume.apache.org/documentation.html,选择Flume Developer Guide开发者模式。(也可在linux目录/flume-1.8.0/docs下查看)

 一、案例:监控端口数据

目标:Flume监控一端Console,另一端Console发送消息,使被监控端实时显示。

(1)在/opt/data下创建flume01.conf(Flume Agent配置文件)

         在大数据中,想这样的配置文件算小的了。解释一下:

       (1) 前三行是创建一个flume采集程序,程序名为a1,同时给程序中的source、sink、channel组件起别名r1、k1、c1。

       (2) 接着三行是用来配置source连接的数据源来自什么地方。

a1.sources.r1.type = netcat                   netcat代表连接的数据源是一个 络端口

a1.sources.r1.bind = localhost              连接的端口绑定的ip地址

a1.sources.r1.port = 44444                  连接的端口

        (3)接下来是sink将数据发送到的位置。

a1.sinks.k1.type = logger    发送到日志记录中,如果日志在控制台打印,那就在控制台显示

        (4)channel缓冲池的相关配置

a1.channels.c1.type = memory                       缓冲池是在内存中缓冲的

a1.channels.c1.capacity = 1000                     缓冲池最多可以存放多少个event

a1.channels.c1.transactionCapacity = 100     缓冲池一次给sink多少个event

        (5)最后两行将一个Flume程序中source和channel,还有channel和sink连接起来

(2)启动flume(一个进程称为一个月agent)

flume-ng agent -n a1 -f flume01.conf -Dflume.root.logger=INFO,console

 创建成功,如图:

 (3)再开个窗口,给127.0.0.1:44444发数据

首先连接端口(telnet)

先安装telnet工具

yum install -y telnet

再查看127.0.0.1:44444是否被占用

netstat -tunlp | grep 44444

 除了被监听着,没有再被占用了。

先开启flume先听端口

使用telnet工具向本机的44444端口发送内容

telnet localhost 44444

 成功连接。

 (4)输入数据测试

在第二次开启的窗口(telnet)中输入ls

 在最先打开的窗口查看到:

 看到控制台上Event中有ls传来。

多次测试:

 查看第一个窗口:

 ctrl+c结束。

 此案例必须先开启flume监听再去连接端口。

 二、案例:实时读取本地文件到HDFS

目标:实时监控hive日志,并上传到HDFS中

 此案例相当于flume的source连接本地文件,sink连接HDFS

(1)创建flume02.conf文件

 解释一下:

a2.sources.r2.type = exec                              exec代表监听的是一个linux的可执行命令

a2.sources.r2.command = tail -F /opt/module/zookeeper/logs

        代表监听的命令是tail -F: 监听文件数据动态变化,此时监听的是zookeeper下的logs的zookeeper-root-server-node1.out文件(此处把上面截图的地址修改了)

# Describe the sink

a2.sinks.k2.type = hdfs

a2.sinks.k2.hdfs.path = hdfs://192.168.100.4:9000/flume/%Y%m%d/%H

此句代表上传到hdfs的指定路径下,192.168.100.4:9000为hdfs路径

 (2)启动监听

flume-ng agent -n a2 -f flume02.conf -Dflume.root.logger=INFO,console

 (3)使用zookeeper

        启动zookeeper的同时就会产生logs日志文件。我们设置flume的生成新文件的时间为600(10分钟),十分钟后控制台才会有回应。这样本地文件数据就上传到HDFS上了。

文章知识点与官方知识档案匹配,可进一步学习相关知识CS入门技能树Linux入门初识Linux24799 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年7月25日
下一篇 2021年7月25日

相关推荐