sunny123456

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

flume的安装与配置总结 flume搭建


Flume的官网是 http://flume.apache.org,官网提供了丰富实用的技术资料。另外还有一个中文版的文档 https://flume.liyifeng.org/

一、下载软件

网站 https://mirrors.tuna.tsinghua.edu.cn/apache/flume提供了各个版本的下载。

cd /var/softwares
wget https://mirrors.tuna.tsinghua.edu.cn/apache/flume/1.9.0/apache-flume-1.9.0-bin.tar.gz
  • 1.
  • 2.

二、解压

tar -zxvf apache-flume-1.9.0-bin.tar.gz -C /var/app
  • 1.

三、创建配置文件

cd /var/app/apache-flume-1.9.0-bin/
mkdir -p conf/job
vi conf/job/netcat-flume-logger.conf
  • 1.
  • 2.
  • 3.
# example.conf: 一个单节点的 Flume 实例配置

配置Agent a1各个组件的名称

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

配置Agent a1的source r1的属性

a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444

配置Agent a1的sink k1的属性

a1.sinks.k1.type = logger

配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的

a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

把source和sink绑定到channel上

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.

这个配置文件就是从官网和中文网复制下来的一个agent的配置文件,它描述了一个日志收集逻辑。即从本地44444端口获取数据,然后在控制台打印出来,如果端口不断输入数据,Flume也会不断进行收集和输出。因为Flume就是一个流式日志收集框架。

四、测试

1. 启动一个agent

cd /var/app/apache-flume-1.9.0-bin/
bin/flume-ng agent -n a1 -c conf -f conf/job/netcat-flume-logger.conf -Dflume.root.logger=INFO,console
  • 1.
  • 2.

此时处于阻塞状态,agent正在监听44444端口,等待数据。

2. 另外打开一个终端,启动netcat。不过要先安装netcat。

nc localhost 44444
  • 1.

然后发送数据,在agent那边就可以看到新的日志输出。

五、进阶测试

测试的套路就是修改或者另建一个配置文件,按照官网给定的规则配置source、channel、sink和bind,source是输入配置,就是数据来源,channel是缓存部分,sink是数据输出目标,bind则是channel跟输入与输出线路的绑定关系。这跟logstash的配置很像。

我们这里的测试,就是把数据源改成监控本地日志文件的追加内容,然后输出到另外的本地文件序列中。这里的本地日志文件内容增加我们用echo来模拟。

vi conf/job/file-flume-file.conf
  • 1.
# example.conf: 一个单节点的 Flume 实例配置

配置Agent a1各个组件的名称

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

配置Agent a1的source r1的属性

a1.sources.r1.type = exec
a1.sources.r1.command = tail -F /tmp/logs/test01.log
a1.sources.r1.shell = /bin/bash -c

配置Agent a1的sink k1的属性

a1.sinks.k1.type = file_roll
a1.sinks.k1.sink.directory = /tmp/logs

配置Agent a1的channel c1的属性,channel是用来缓冲Event数据的

a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100

把source和sink绑定到channel上

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

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.

启动agent。

bin/flume-ng agent -n a1 -c conf -f conf/job/file-flume-file.conf
  • 1.

我们用以下命令不断改变向本地文件追加内容。

echo hello world >> /tmp/logs/test01.log
  • 1.

在/tmp/logs文件夹下会多出很多一时间戳命名的文件。这就是我们的输出文件。这些文件会定时30秒重新创建一个,不管有没有数据。我们可以查看有数据的文件,能够看到我们追加的内容。

flume的安装与配置总结 flume搭建_大数据

 


原文链接:https://blog.51cto.com/u_16099321/10534364

posted on 2024-04-25 19:52  sunny123456  阅读(788)  评论(0)    收藏  举报