flume 安装及简单使用
flume 安装及简单使用
简介
flume 被认为是一个高效可靠且具备高性能的系统,用于实时监控并整合大量日志数据流。
下载
官网
https://flume.apache.org/download.html
安装
//解压下载安装包
tar -zxvf apache-flume-1.11.0-bin.tar.gz
//变更目录
mv apache-flume-1.11.0-bin flume
flume 是免安装的,直接解压,在bin目录下执行
简单示例
官方简明示例中描述了如何启动一个Flume实例并接收指定端口的数据输入。具体来说,在控制台界面中将数据输出到指定位置即可完成初始化操作。Flume系统的设计基于配置文件来进行功能扩展或服务管理的第一步是先创建并定义相应的配置文件。
1、定义配置文件
//解压目录建配置文件netcat-memory-logger.conf
mkdir job
cd job
touch netcat-memory-logger.conf
该文档包含了sources、channels和sinks这三个关键参数的详细说明(官方粘贴所得),其中明确指定了sources、channels以及sinks的具体定义和作用机制。
该文档包含了sources、channels和sinks这三个关键参数的详细说明(官方粘贴所得),其中明确指定了sources、channels以及sinks的具体定义和作用机制。
# example.conf: A single-node Flume configuration
# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1

2、启动flume
//进入flume安装目录执行
bin/flume-ng agent --conf conf --conf-file ./job/netcat-memory-logger.conf --name a1
//简化写法,一样效果
bin/flume-ng agent -c conf -f ./job/netcat-memory-logger.conf -n a1
效果如下图(像命令卡住一样,没有后续的信息输出):

3、验证配置场景
开一个新的终端,使用telnet命令去操作监听的44444端口
telnet 127.0.0.1 44444
进入服务,输入I am ok!,点击回车
如下图:

再开启一个新的终端,进入flume安装目录
//执行查看日志
tail -300f flume.log
如下图:

可以看到sink已经收到了“I am ok!”的消息,并输出到了日志文件中。
以上示例需要开三个终端才能搞完。下面将日志直接打印到控制台
//增加了-Dflume.root.logger=INFO,console
bin/flume-ng agent -c conf -f ./job/netcat-memory-logger.conf -n a1 -Dflume.root.logger=INFO,console
执行以上脚本,发现没生效

通过一番调研发现将-Dflume.root.logger=INFO,console设置不起作用的原因在于采用了最新 versions的Dflume 3.x系列中的新功能限制导致其配置方式已发生相应的变化。因而无法实现正常工作状态。建议现阶段以较为稳定的Dflume 3.x及其以前 versions为基础进行学习,并待积累更多实践经验后再深入探究Dflume 9及以上 versions的相关配置问题
flume 结构

flume由源(source)、渠道(channel)以及汇入(sink)三部分构成,并配备了功能多样的组件以支持多样化的数据采集与传输需求。各组件的操作均需通过配置文件完成之后自动生效。未来将根据不同应用场景深入探索各个组件的具体配置方法,请期待进一步的学习与实践!
经验总结
在学习新技术的时候, 特别要注意版本问题, 一定不要使用最新版本, 否则会遇到许多异常问题, 并且难以找到相关的参考博文, 费了很长时间之后会影响学习积极性.
