系列文章目录
一、apache flume基本介绍
Flume目前是Apache旗下的一款顶级开源项目, 最初是由cloudera公司开发的, 后期贡献给了Apache, Flume是一款专门用于数据采集的工具, 主要的目的将数据从一端传输到另一端的操作
Flume也是使用Java语言编写的, Flume一般部署在数据采集节点
在Flume中提供多种数据源的组件 和 多种目的地组件, 主要的目的是为了能够适应更多的数据采集场景
使用Flume核心就是学习如何配置Flume的采集脚本
Flume的运行机制:
整个Flume启动后, 就是一个agent实例对象, 而一个Agent实例对象一般由三大组件组成:
- 1- Source 组件: 数据源 主要用于对接数据源, 从数据源中采集数据, Flume提供多种source组件
- 2- Sink组件: 下沉地(目的地) 主要用于将数据源采集过来数据通过Sink下沉具体的目的地中, Flume提供多种Sink组件
- 3- channel组件: 管道 主要是用于起到缓存的作用, 从Source将数据写入到channel, sink从channel中获取数据, 然后进行下沉操作, Flume也提供多种channel组件
在agent实例内部, 数据传递是一个个event对象方式来传输的, event对象就是数据内容, 默认只是对数据本身包裹, event除了可以保存本身数据以外, 还可以附带一些其他信息
二、apache flume的入门操作
Flume的使用可以归为三大步骤
- 一、先确定三大组件
- 二、调整采集配置信息
- 三、生成对应的采集文件(采集文件名称格式:模块名称_source组件名称_sink组件名称.conf)
2.1.实现入门案例
入门案例,实现对192.168.88.1下的55555端口进行监控
在flume的安装目录下的conf目录下,创建采集配置文件
#1- 配置三大组件的名称
a1.sources = r1
a1.channels = c1
a1.sinks = k1
#2- 配置三大组件详细信息
#2.1 source组件
a1.sources.r1.type = netcat
a1.sources.r1.bind = 192.168.88.1
a1.sources.r1.port = 55555
#2.2 channel组件
a1.channels.c1.type = memory
a1.channels.c1.capacity = 100
a1.channels.c1.transactionCapacity = 100
#2.3 sink组件
a1.sinks.k1.type = logger
# 3- 配置sink和source连接channel配置
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
启动执行
cd /export/server/flume/bin
./flume-ng agent -n a1 -c ../conf -f ../conf/init_netcatSource_loggerSink.conf -Dflume.root.logger=INFO,console
-n : 为agent起一个名字, 此名字必须和采集配置文件中定义的名称保持一致
-c : 指定Flume配置文件在那个目录下
-f : 指定采集文件的路径
-D-Dflume.root.logger=INFO,console : 打印日志行为 (固定内容)
测试
安装telnet命令
yum -y install telnet
在任意的一个节点上, 通过 telnet命令 连接node1 的 44444端口号, 然后向其发送数据, 观察node1的flume是否可以采集到数据, 如果可以采集到, 那么就说明没有任何问题, Flume整体都是正常, 入门案例结束了
注意:先启动Flume监听, 然后连接对应的端口号
操作:
telnet node1 44444
总结
Flume是一款专门用于数据采集的工具,同时兼备监控数据新增的作用。