栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

Flume简介与使用

Flume简介与使用

目录
  • Flume简介
    • 什么是Flume
    • Flume的几种连接方式
  • Flume的使用
    • 测试flume(监控一个目录,并将记录打印到控制台)
    • 监控目录下的文件到HDFS

Flume官网
记录:exec数据源中的command参数可以写一条任意运行的Linux中的命令

Flume简介 什么是Flume

flume主要做的是日志采集,是一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统
Flume 运行的核心是 Agent。Flume以agent为最小的独立运行单位。一个agent就是一个JVM。它是一个完整的数据收集工具,含有三个核心组件,分别是 
source、 channel、 sink。通过这些组件, Event 可以从一个地方流向另一个地方
其中channel里面是一个一个event

flume可靠性的体现:(event必须传到了sink或者下一个agent之后才会结束)
Flume 使用事务性的方式保证传送Event整个过程的可靠性。 Sink 必须在Event 已经被传达到下一站agent里,又或者,已经被存入外部数据目的地之后,才能把 Event 从 Channel 中 remove 掉

Flume的几种连接方式



Flume的使用 测试flume(监控一个目录,并将记录打印到控制台)

监控一个目录,将数据打印出来
这里我们做的是监控一个目录,并将下面的数据都打印出来,所以我们这里用到的数据源应该是:
Spooling Directory Source

首先配置数据源source(监控的数据源目录要提前有才行)

来到官网,可以看到这边有许多的数据源可以选择

进入我们所需要的从“目录”来的数据源的网页(我们监控的是一个目录),图中标黑的是必选项,剩下的根据自身的需求进行选择

所以这里我们配置的source为:
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

接下来配置sink
我们要做的是将出现的变化打印到控制台
所以这里我们选择的是Logger Sink

所以我们这里sink的配置为:
a1.sink.k1.type=logger

接下来配置channel
这里我们将channel的类型设置为memory,表示将event缓存在内存中

所以我们这里channel的配置为
a1.channel.c1.type=memory

接下来就是组装,指定sources的channels和sinks的channel

完整的配置文件:

# 给agent起一个名字a1
# 再分别给source、channel、sink起名字
a1.sources=r1
a1.channel=c1
a1.sink=k1

# 分别对source、channel、sink进行配置

# 配置source
# 将source的类型指定为spooldir,用于监听一个目录下文件的变化
# 因为每个组件可能会出现相同的属性名称,所以在对每个组件进行配置的时候
# 需要加上 agent的名字.sources.组件的名字.属性 = 属性值
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

# 配置sink
# 使用logger作为sink的组件,可以将收集到的数据直接打印到控制台
a1.sink.k1.type=logger

# 配置channel
# 将channel的类型设置为memory,表示将event缓存在内存中
a1.channel.c1.type=memory

# 组装
# 将sources的channels属性指定为c1
a1.sources.r1.channels=c1
# 将sinks的channel属性指定为c1
a1.sinks.k1.channel=c1

启动agent(这里的a1是agent的名称)
flume-ng agent -n a1 -f /opt/datas/flume/spoolingtest.conf -Dflume.root.logger=DEBUG,console

成功监控到这一个目录:

接下来我们对监控的目录下写入一些文件,观察flume监控的变化(监控的目录下的文件发生了变化之后会自动加上后缀,可以自己修改,默认是"COMPLETED"),我们写入了一个文件,并在文件里面简单写入几个数字

可以看到这边已经把我们所监控的目录的变化输出了出来

左边的1-8是我们写入的数字,右边输出的是31-38,代表着我们输入的数字的十六进制

监控目录下的文件到HDFS

配置文件:

a1.sources=r1
a1.sinks=k1
a1.channels=c1

a1.sources.r1.channels=c1
a1.sources.r1.type=spooldir
a1.sources.r1.spoolDir=/opt/datas/flume_data

a1.sinks.k1.channel=c1
a1.sinks.k1.type=hdfs
a1.sinks.k1.hdfs.path=/flume

a1.channels.c1.type=memory

监控成功,并且在监控的目录下添加内容

发现在hdfs上出现了监控的内容变化

感谢阅读,我是啊帅和和,一位大数据专业大四学生,祝你快乐。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/342362.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号