flume简介与安装配置

一、flume简介

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。flume的核心是把数据从数据源收集过来,再送到目的地。为了保证输送一定成功,在送到目的地之前,会先缓存数据,待数据真正到达目的地后,删除自己缓存的数据

Agent是Flume的一个JVM进程,其中包含Source、Channel、Sink三个组件,要采集的数据经过定制化的Source缓存到Channel,Channel是一个队列,Source向里面插入数据,Sink从里面取数据,当Sink确认数据被下一跳Agent或者DB等接收后会将数据从Channel删除。

source采集源,可以接收外部源发送过来的数据。不同的source,可以接受不同的数据格式。比如有目录池(spooling directory)数据源,可以监控指定文件夹中的新文件变化,如果目录中有文件产生,就会立刻读取其内容。

channel是一个存储地,接收source的输出,直到有sink消费掉channel中的数据。channel中的数据直到进入到下一个channel中或者进入终端才会被删除。当sink写入失败后,可以自动重启,不会造成数据丢失,因此很可靠。

sink会消费channel中的数据,然后送给外部源或者其他source。如数据可以写入到HDFS或者HBase中。

flume允许多个agent连在一起,形成前后相连的多级跳。

多个agent之间串联:
这里写图片描述

二、安装配置使用flume

本文环境如下:
操作系统:CentOS 7.2.1511 64位
Flume版本:1.6.0

1. 系统需求

Flume需要Java 1.6及以上(推荐1.7),对Agent监控目录的读写权限。

2. 下载软件包

到Flume官网上http://flume.apache.org/download.html下载软件包,例如:

wget "http://mirrors.cnnic.cn/apache/flume/1.6.0/apache-flume-1.6.0-bin.tar.gz"
tar -xzvf apache-flume-1.6.0-bin.tar.gz
mv flume-1.6.0 /opt
 
 
  • 1
  • 2
  • 3
  • 1
  • 2
  • 3

3. 简单示例

3.1 修改配置文件
vi /opt/flume-1.6.0/conf/flume.conf
 
 
  • 1
  • 1

输入以下内容

# 指定Agent的组件名称
a1.sources = r1
a1.sinks = k1
a1.channels = c1

# 指定Flume source(要监听的路径)
a1.sources.r1.type = spooldir
a1.sources.r1.spoolDir = /root/path

# 指定Flume sink
a1.sinks.k1.type = logger

# 指定Flume channel
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
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
3.2 启动flume agent
cd /opt/flume-1.6.0
bin/flume-ng agent --conf conf --conf-file conf/flume.conf --name a1 -Dflume.root.logger=INFO,console
 
 
  • 1
  • 2
  • 1
  • 2
参数作用举例
–conf 或 -c指定配置文件夹,包含flume-env.sh和log4j的配置文件–conf conf
–conf-file 或 -f配置文件地址–conf-file conf/flume.conf
–name 或 -nagent名称–name a1
-zzookeeper连接字符串-z zkhost:2181,zkhost1:2181
-pzookeeper中的存储路径前缀-p /flume
3.3 写入日志内容
vi 1.log
 
 
  • 1
  • 1

写入Hello Flume.作为测试内容。然后拷贝到flume监听路径。

cp 1.log  /root/path/
 
 
  • 1
  • 1

接着就可以在前一个终端看到刚刚采集的内容了,如下:

2016-06-27 10:02:58,322 (SinkRunner-PollingRunner-DefaultSinkProcessor) [INFO - org.apache.flume.sink.LoggerSink.process(LoggerSink.java:94)] Event: { headers:{} body: 48 65 6C 6C 6F 20 77 6F 72 6C 64 0D             Hello Flume. }
 
 
  • 1
  • 1

至此flume已经能够正常运行。

flume安装参考:http://blog.csdn.net/lnho2015/article/details/52035145

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值