1.flume的概述
Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采
集、聚合和传输的软件。
Flume 的核心是把数据从数据源(source)收集过来,再将收集到的数据送到
指定的目的地(sink)。为了保证输送的过程一定成功,在送到目的地(sink)之前,
会先缓存数据(channel),待数据真正到达目的地(sink)后,flume 在删除自己缓
存的数据。
2.运行机制
flume系统中的核心角色是agent,其本身是一个java进程。
每一个agent相当于一个数据传递员,内部有三个组将
Source:采集源,用于跟数据源对接,以获取数据
Sink:下沉地,采集数据的传送目的地,用于往下一级agent传递数据或者往最终储存系统传递数据。
Channel:agent内部数据传输通道,用于从source将数据传递到sink;在整个数据传输的过程中,流动的是event,它是flume内部数据传输的最基本单元。
3.简单结构
4.简单使用
安装好flume后,进入flume的conf配置界面
在文件flume-env.sh
中配置好JAVA_HOME的地址
先来个简单的例子测试一下环境是否正常
在conf目录下新建一个文件,xxx.conf
1. 在里面加入以下内容
a1.sources = r1
a1.sinks = k1
a1.channels = c1
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
a1.sinks.k1.type = logger
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
2.启动agent去采集数据
退到上一级执行以下命令
bin/flume-ng agent -c conf -f conf/netcat-logger.conf -n a1 -Dflume.root.logger=INFO,console
3.测试
telnet anget-hostname port (telnet localhost 44444)