Flume的使用

        Flume软件的使用是需要我们通过配置文件完成的,编写Flume采集数据的脚本文件,脚本文件我们一般叫xxx.conf这样的文件,这个脚本文件中配置的是flume采集框架中的source连接的数据源、sink连接的目的地,以及source和channel\sink如何连接,配置文件编写完成,然后使用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上了。

  • 6
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值