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-10-11 21:59:52

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

Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(一)

Flume 1.7.0 User Guide Introduction(简介) Overview(综述) System Requirements(系统需求) Architecture(架构) Data flow model(数据流模型) Complex flows(复杂流) Reliability(可靠性) Recoverability(可恢复性) Setup(配置)Configuration(配置 Setting up an agent(设置一个agent) Configuring indiv

【翻译】Flume 1.8.0 User Guide(用户指南)

翻译自官网flume1.8用户指南,原文地址:Flume 1.8.0 User Guide 一. 介绍 1. 概述 Apache Flume 是收集.汇总和移动大数据量的不同数据源到集中的数据仓库的分布式的.可靠的.可用的系统. 使用flume 不仅仅可以做日志收集.自从数据源可自定义,flume可以转移大量的事件数据,包括但不限于网络数据.社交网络数据.邮件数据和处理任何数据源的问题. Apache Flume是Apache基金会的顶级项目. 现有两个可用的发布版本:0.x 和 1.x. 0.

saltstack之yum简单部署lnmp

今天使用salt简单部署lnmp 部署环境: node23.com 192.168.0.23 master/minion 部署nginx和phpnode24.com 192.168.0.24 minion 部署mysql 首先看一下结构目录: # tree . ├── dev │ ├── files │ │ ├── httpd.conf │ │ └── my.cnf │ └── lamp.sls ├── mysql │ ├── my.cnf │ └── mysql_installed.sls ├

mogilefs 的简单部署

----本文大纲 分布式文件系统 MogileFS 环境 安装及配置 代理测试 ------------- 一.分布式文件系统 分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连,也就是集群文件系统,可以支持大数量的节点以及PB级的数量存储.相对地,在一个分享的磁盘文件系统中,所有节点对数据存储区块都有相同的访问权,在这样的系统中,访问权限就必须由客户端程序来控制.分布式文件系统可能包含的功能有:

Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw stream of data flowing through the ingest pipeline is not desired behaviour in many production environments because this may result in leaking sensit

Apache Flume 1.6.0 发布,日志服务器

Apache Flume 1.6.0 发布,此版本现已提供下载: http://flume.apache.org/download.html 更新日志和文档: http://flume.apache.org/releases/1.6.0.html Flume 是一个分布式.可靠和高可用的服务,用于收集.聚合以及移动大量日志数据,使用一个简单灵活的架构,就流数据模型.这是一个可靠.容错的服务. 相关链接 Apache Flume 的详细介绍:请点这里 Apache Flume 的下载地址:请点这里

MyBatis3.2.2+SpringMVC3.0 简单实现(增删改查,Web版实现)

MyBatis3.2.2+SpringMVC3.0 简单实现(增删改查,Web版实现) 首先,需要知道Eclipse如何创建Dynamic Web Project for Maven,我们首先需要知道如何用Eclipse创建动态部署的Maven Web-app 项目.参考以下链接的博客:http://blog.csdn.net/smilevt/article/details/8215558. 构建完之后:实现具体的增删改查,不去部署Web war的时候我们用Junit单元测试CRUD功能.代码如

flume 1.8.0 开发基础

本文由云+社区发表 作者:皮皮熊 概述 Apache Flume是一个用于高效地从大量异构数据源收集.聚合.传输到一个集中式数据存储的分布式.高可靠.高可用的系统. Apache Flume是Apache基金会的顶级项目.现在有两个代码版本线可以获取:0.9.x和1.x.本文档对应的是1.x版本. 数据流模型 Event是流经flume agent的最小数据单元.一个Event(由Event接口实现)从source流向channel,再到sink.Event包含了一个payload(byte a

zabbix3.0安装部署文档

zabbix v3.0安装部署 摘要: 本文的安装过程摘自http://www.ttlsa.com/以及http://b.lifec-inc.com ,和站长凉白开的<ZABBIX从入门到精通v3.0.1 - 运维生存时间(2016)>一书. 关于zabbix及相关服务软件版本: Linux:centos 6.6 nginx:1.9.15 MySQL:5.5.49 PHP:5.5.35 一.安装nginx: 安装依赖包: yum -y install gcc gcc-c++ autoconf