Flume应用篇之实时监控日志并存储至HDFS


前言

提示:本篇为Flume系列的实战应用,在阅读此文前请务必安装好Flume环境,可以参考文件收集工具Flume的简介与安装,基本使用可以参考Flume基本使用。重复内容不再赘述。本机环境为:
CentOS 6.5
CDH 5.3.6
JDK 1.7

一、五步法编写Agent配置

由于上篇博客已经创建了一个Agent名为a1,我们这里直接复制它的框架并改名cp a1.conf a2.conf并修改组件设置:

#a2: agent名称 
#r2: source的名称
#k2: sink的名称
#c2: channel的名称
 
# 第一步:为组件写一个名字
a2.sources = r2
a2.sinks = k2
a2.channels = c2
 
# 第二步:设置source的配置
a2.sources.r2.type = exec
a2.sources.r2.command = tail -f /opt/cdh5.3.6/hive-0.13.1-cdh5.3.6/logs/hive.log
a2.sources.r2.shell = /bin/bash -c
 
# 第三步:设置sink的配置
a2.sinks.k2.type = hdfs
a2.sinks.k2.hdfs.path = hdfs://hadoop:8020/user/root/flume/hive-logs/
a2.sinks.k2.hdfs.fileType = DataStream
a2.sinks.k2.hdfs.writeFormat = Text
a2.sinks.k2.hdfs.batchSize = 10
 
# 第四步:设置channel的配置
a2.channels.c2.type = memory
 
# 第五步:把source和sink绑定到channel
a2.sources.r2.channels = c2
a2.sinks.k2.channel = c2

这里配置有几个需要说明的地方,各个组件的设置有很多,不进行配置的情况下它的默认设置往往不符合我们的需求,建议大家还是尽量看官方文档进行设置。这里我们使用的source种类是exec也就是执行文件,它对应的命令属性为command,也就是将我们hive日志文件的末尾输出到hdfs文件上。在sink的中path我们需要配置成hdfs上的某个目录,其他设置都直接copy就可以。

二、开启监控日志任务

1.导入驱动

在启动之前还有一点要注意,我们flume操作HDFS时是需要有一些驱动jar包的,否则会报错缺少jar包。理论上来讲我们需要将Hadoop安装目录lib下的几个jar包拷贝到flumelib下,但为了方便大家,免去挨个找的麻烦,我贴了我的版本的几个jar包下载地址,直接copy进llib目录即可。
链接:https://pan.baidu.com/s/1btIyL07kKVrcA0WlhH8CgA
提取码:el08

2.启动Agent

接下来启动好HDFS后,最好先提前创建好上面配置的hdfs路径bin/hdfs dfs -mkdir -p /user/root/flume/hive-logs/再启动Agent。


bin/flume-ng agent \
-c conf \
-n a2 \
-f conf/a2.conf \
-Dflume.root.logger=DEBUG,console

在这里插入图片描述
看到Checking file代表目前Agent成功启动。进入到Hadoop前端的页面查看可以看到已经写入了两个文件。
在这里插入图片描述
如果此步骤报错大概率是上述的agent配置文件出错,请仔细对比修正,还有问题也可以在评论区留言。

三、启动Hive测试

在Hive安装目录bin/hive启动Hive,目的是测试新产生的日志文件能否正常被监控并导入HDFS,进一步地,我们执行一些操作例如select * from xxx;
在这里插入图片描述
此时可以立即看到另一个shell中监控到了这些日志变更,并开始写入文件:
在这里插入图片描述
最后,在前端可以直观地看到确实多了好几个文件,监控成功!
在这里插入图片描述


总结

本文章只是粗浅地展示Flume用于实时监控文件变化的作用,关于Flume其他的各种用法及配置欢迎翻阅我的其他博客,还有大家如果在实际操作遇见什么问题也欢迎留言讨论!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值