一文带你入门Flume

1,Flume概述

Flume是Cloudera提供的一款高可用,高可靠的,分布式海量日志采集软件。

Flume的核心是把数据从数据源(source)收集过来,再将收集到的数据送到指定的目的地(sink)。为了保证数据的成功传输,在数据传送到目的地(sink)之前会先将数据缓存下来(channel),在数据真正到达目的地后,再将缓存的数据删除。

2,架构图

在这里插入图片描述

Agent:Flume的核心角色是Agent,Agent本身是一个JAVA进程他运行在Flume所在的节点。

Source:采集源,数据源负责采集数据

Sink:下沉地,采集数据的目的地,用于想下一级Agent传递数据或者往最终存储系统中存储数据。

Channel:Agent内部的传输通道。用于把数据从Source传输到Sink,传输单位为event。

Event:Event是Flume内部传输的基本单元。Event将传输的数据进行封装,如果是文本文件,通常是一行记录。Event也是事物的基本单位。event从Source流向Channel,再到Sink。本身是一个字节数组。并可携带 headers(头信息)信息。event 代表着一个数据的最,小完整单元,从外部数据源来,向外部的目的地去。
一个完整的Event包括Event headers,Event body,Event 信息。其中Event信息就是Flume采集的日志记录。

3,Flume采集系统结构图。

在这里插入图片描述
在这里插入图片描述

4,安装部署。

上传安装包到所需要采集数的节点。
然后解压安装
tar -zxvf apache-flume-1.8.0-bin.tar.gz

获取安装包可微信关注公众号“暗物质魂”回复Flume,也可自己前往官网下载
进入安装目录下的conf目录修改flume-env.sh,添加JAVA_HOME即可

5,入门案例

监听本地44444端口的数据变化。
在Flume安装目录下新建job文件夹,进入此文件夹,
vi netcat-logger.conf 编辑
# 定义这个 agent 中各组件的名字
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# 描述和配置 source 组件:r1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# 描述和配置 sink 组件:k1
a1.sinks.k1.type = logger
# 描述和配置 channel 组件,此处使用是内存缓存的方式
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# 描述和配置 source channel sink 之间的连接关系
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

启动Flume,在Flume安装目录下输入命令

bin/flume-ng agent -c conf -f job/netcat-logger.conf -n a1 -Dflume.root.logger=INFO,console

-c conf 指定 flume 自身的配置文件所在目录
-f conf/netcat-logger.con 指定我们所描述的采集方案
-n a1 指定我们这个 agent 的名字
测试
Xshell重新开一个窗口
输入 telnet localhost 44444 后输入hello Flume
查看Flume打印数据是否又hello Flume输出。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

炸鸡叔老白

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值