Flume 1.5.0简单部署试用

================================================================================

一、Flume简介

================================================================================

1、概述

Flume 是 Cloudera 提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。

 

Flume 最早是 Cloudera 提供的日志收集系统,目前是 Apache 下的一个孵化项目,Flume 支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume 提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力,Flume 提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIXtail)、syslog(syslog 日志系统,支持 TCP 和 UDP 等2种模式),exec(命令执行)等数据源上收集数据的能力。

 

2、数据流通

Flume 传输数据的基本单位是 event,如果是文本文件,通常是一行记录,这也是事务的基本单位。Flume 运行的核心是 agent。它是一个完整的数据收集工具,含有三个核心组件,分别是 source、channel、sink。Event 从 Source,流向 Channel,再到 Sink,本身为一个 byte 数组,并可携带 headers 信息。Event 代表着一个数据流的最小完整单元,从外部数据源来,向外部的目的地去。Source:完成对日志数据的收集,分成 transtion 和 event 打入到 channel 之中。Channel:主要提供一个队列的功能,对 source 提供中的数据进行简单的缓存。Sink:取出 Channel 中的数据,进行相应的存储文件系统、数据库、或者提交到远程服务器。通过这些组件,event 可以从一个地方流向另一个地方,如下图所示:

 

Source 消费从外部流进的 Events,如 Avro Source 接收外部客户端传来的或是从别的agent流出来的 Avro Event。Source可以把 event 送往一个或多个 channel。channel 是一个队列,持有 event 等待 sink 来消费,一种 Channel 的实现:FileChannel 使用本地文件系统来作为它的存储。Sink 的作用是把 Event 从 channel 里移除,送往外部数据仓库或给下一站 agent 的 Source,如 HDFSEventSink 送往 HDFS。同个 agent 下的 source 和 sink 是异步的。下面再举几个数据流通的例子,说明不同的使用方式。

(1)多agent模式

 

(2)多对一的合并/Collector场景

 

(3)一对多路输出模型

 

==========================================================================================

二、Flume部署与测试

==========================================================================================

1JDK安装

http://download.oracle.com/otn-pub/java/jdk/7u65-b17/jdk-7u65-linux-x64.tar.gz

# tar xvzf jdk-7u65-linux-x64.gz

# cd /usr/local && ln -s jdk1.7.0_65 jdk

# cd /usr/local/bin && ln -s /usr/local/jdk/bin/java

 

2Flume安装

http://mirrors.cnnic.cn/apache/flume/1.5.0/apache-flume-1.5.0-bin.tar.gz

# tar xvzf apache-flume-1.5.0-bin.tar.gz

# mv apache-flume-1.5.0-bin apache-flume-1.5.0

# ln -s apache-flume-1.5.0 flume

 

3、环境变量设置

# vim /etc/profile

export JAVA_HOME=/usr/local/jdk

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$PATH:$JAVA_HOME/bin

 

export FLUME_HOME=/usr/local/flume

export FLUME_CONF_DIR=$FLUME_HOME/conf

export PATH=.:$PATH::$FLUME_HOME/bin

 

# source /etc/profile

 

4Flume配置

# mkdir -p /data/logs/flume-out

 

# vim /usr/local/flume/conf/flume-conf.properties

agent1.sources= source1

agent1.sinks= sink1

agent1.channels= channel1

 

agent1.sources.source1.channels= channel1

agent1.sources.source1.type= exec

agent1.sources.source1.command= tail -f /data/logs/web/iwan/620000010/access.log

 

agent1.sources.source1.interceptors= inter1

agent1.sources.source1.interceptors.inter1.type= REGEX_FILTER

agent1.sources.source1.interceptors.inter1.regex= .*POST.*

agent1.sources.source1.interceptors.inter1.excludeRegex= true

 

agent1.channels.channel1.type= memory

agent1.channels.channel1.capacity= 1000

agent1.channels.channel1.transactionCapactiy= 100

 

agent1.sinks.sink1.channel= channel1

agent1.sinks.sink1.type= FILE_ROLL

agent1.sinks.sink1.sink.directory= /data/logs/flume-out

 

5、服务启动

# cd /usr/local/flume

# nohup bin/flume-ng agent -n agent1 -c conf -f conf/flume-conf.properties &

 

6、相关测试

(1)、本地hosts绑定 "172.18.35.30  iwan.qq.com"

(2)、采用Fiddler提交测试数据

 

(3)、效果展示

 

 

7、日志定期清理

# crontab -e

00 00 * * * cd /usr/local/flume/logs && rm -f `ls -1t | grep flume.log.$(date -d "7 days ago" +"%Y-%m-%d")` >/dev/null 2>&1

 

附录:

http://flume.apache.org/FlumeUserGuide.html

http://flume.apache.org/FlumeDeveloperGuide.html

http://www.cnblogs.com/lion.net/p/3903197.html

 

时间: 2024-09-27 08:15:15

Flume 1.5.0简单部署试用的相关文章

tomcat8 0 服务器-Tomcat8.0可以和Tomcat7.0一起部署到同一个服务器上么,部署时有哪些注意点?

问题描述 Tomcat8.0可以和Tomcat7.0一起部署到同一个服务器上么,部署时有哪些注意点? 目前服务器上已经部署了Tomcat7.0,我需要在上面再部署一个Tomcat8.0,具体怎么部署.(求详细部署步骤) 解决方案 可以,在不同的目录下解压,然后修改conf目录下的server的端口号,具体参考下面 http://blog.163.com/hegonghe@126/blog/static/50004810200871483335100/

c# wince6.0 可以部署到真机上,但是不能调试,设置的断点处不停。

问题描述 c# wince6.0 可以部署到真机上,但是不能调试,设置的断点处不停. wince5.0 可以部署到真机上,正常运行调试,但是换wince6.0 就不能调试了,其它都很正常,不知道什么原因? 不知道是软件安装问题还是同步软件的问题?

server2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站

  网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程: 1.官网下载.net framework4.0,下载地址: http://www.microsoft.com/zh-cn/download/details.aspx?id=17718,下载后安装.安装后,原有.net 2.0网站的Asp.Net Version会出现自动

win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法_win服务器

 网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程: 图2-1       3.为4.0程序创建应用程序池,2.0和4.0网站不能共用一个应用程序池,不然会在我的电脑-右键--管理--系统工具--事件查看器-应用程序中出现如下图3-1的错误. 图3-1 通过Internet信息服务-我的应用程序池-新建-应用池,弹出如下图3

win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法

网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单,却遇到了很多问题,下面详细描述下过程: 1.官网下载.net framework4.0,下载地址:http://www.microsoft.com/zh-cn/download/details.aspx?id=17718,或者到脚本之家下载(http://www.jb51.net/softs/69112.html

3dmax8.0简单造型+表面贴图制作三维笔记本

今天我们学习用3dsmax的简单造型和贴图制作三维笔记本. 先来看一下完成的效果图. 1.首先启动3dsmax8.0进入系统默认状态界面,选择创建面板中的"标准几何体"命令中的"长方体"命令在视图区中的"顶视图"中绘制一个高为7宽为130长为100的几何体做为本本的台面如图所示. 2.接着用鼠标选择建立好的几何体按住"shift"键拖动鼠标对模型图进行复制复制的数量为3,将复制的图形分别本本的显示器和屏幕以及本本的键盘面板,然

如何将Asp.net 2.0网站部署到服务器

.net 2.0较之于.net 1.1的一个改进就是开发web程序时没有了bin目录,对类库的引用自动放在 web.config文件中.好处就是不用像以前那样显式地在bin目录下添加相关的dll文件,给开发的过程带来 了便利,正由于这个,也导致了部署本地开发好的web程序到服务器的时候产生一些问题.是不是发现在 本地运行一切正常的程序发布到服务器的时候不工作了,很有可能就是你在web程序中引用了.net 框架类 库之外的第三方类库. 因此,无论你用xcopy方式.vs下的预编译方式.复制方式还是

flash as3.0简单计数器代码

function mc_press(_mc:MovieClip) {         _mc.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,d_f); } function d_f(e:MouseEvent) {         var str:String=e.target.name.slice(0,e.target.name.length-3);         var myclass=getDefinitionByName(str)

asp.net 2.0 简单实现url重写

今天,群里有人问我关于Url重写的问题,想这重写,记得国庆期间看过相关文章,msdn介绍也看过,大概就三种方法,最常用的就是用微软提供的dll文件,今天,把我dll引用了一下,按着说明配置了一下文件,结果出现不少问题,调试时找不到.cs源代码,不知是啥问题,可能dll放的太久,生秀了..-_-.#,只好上网再搜一下新的dll,突然发现2.0里的新方法!花了半个晚上做一个demo!以下是demo源代码:  项目里只有两个页面(Default.aspx,user.aspx(直接response.wr