`

Flume 1.5.0简单部署

 
阅读更多

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

一、Flume简介

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

1、概述

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

 

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

 

2、数据流通

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

wKioL1QBmPvh_AthAADFPXGPTlg226.jpg

 

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

(1)agent模式

wKioL1QBmTrwIjESAAC10Cpc5G0736.jpg

 

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

wKioL1QBmXuQv_FXAAG4CBIK7gg309.jpg

 

(3)一对多路输出模型

wKioL1QBmaqzcCiZAAEpTNT5Cq8730.jpg

 

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

二、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

 

 

# Flume agent config

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 /home/hdfs/apache-tomcat-6.0.43/logs/catalina.out

#agent1.sources.source1.interceptors= inter1
#agent1.sources.source1.interceptors.inter1.type= REGEX_FILTER
#agent1.sources.source1.interceptors.inter1.regex= .*visitlog.*
#agent1.sources.source1.interceptors.inter1.excludeRegex= true

agent1.channels.channel1.type= memory
agent1.channels.channel1.capacity= 1000
agent1.channels.channel1.transactionCapactiy= 100
agent1.channels.channel1.keep-alive=30

#agent1.sinks.sink1.channel= channel1
#agent1.sinks.sink1.type= FILE_ROLL
#agent1.sinks.sink1.sink.directory= /home/flume/logs/flume-out


agent1.sinks.sink1.type=hdfs
agent1.sinks.sink1.channel=channel1
agent1.sinks.sink1.hdfs.path=hdfs://cluster-152:8020/user/flume/events
agent1.sinks.sink1.hdfs.fileType=DataStream
agent1.sinks.sink1.hdfs.writeFormat=Text
agent1.sinks.sink1.hdfs.rollInterval=0
agent1.sinks.sink1.hdfs.rollSize=10240
agent1.sinks.sink1.hdfs.rollCount=0
agent1.sinks.sink1.hdfs.idleTimeout=60

 

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提交测试数据

wKioL1QBmgmiKN_ZAAPCzvZ6lUQ797.jpg

 

(3)、效果展示

wKiom1QBmQKiDgSfAADui3ur5kE928.jpg

 

wKioL1QBmiTTdFhVAADrF4xhSQU059.jpg

 

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

  • 大小: 49.3 KB
  • 大小: 45.5 KB
  • 大小: 110 KB
  • 大小: 74.3 KB
  • 大小: 240.7 KB
  • 大小: 59.6 KB
  • 大小: 58.8 KB
分享到:
评论

相关推荐

    Flume1.5.0入门:安装、部署、及flume的案例

    Flume 1.5.0 版本是其发展历程中的一个重要里程碑,提供了更稳定、高效和可扩展的功能。以下是对 Flume 的详细介绍: **Flume 的核心概念和架构** 1. **事件(Event)**:事件是 Flume 中的基本数据单元,包含了日志...

    apache-flume-1.5.0-cdh5.3.6-bin.zip

    这使得在企业环境中部署和维护 Flume 更加方便。 总之,"apache-flume-1.5.0-cdh5.3.6-bin.zip" 提供了一个用于 CDH 平台的 Flume 实现,它是一个强大的工具,用于收集和传输大数据,尤其适用于日志管理和分析。...

    Flume-ng在windows环境搭建并测试+log4j日志通过Flume输出到HDFS.docx

    Flume-ng 在 Windows 环境搭建并测试 + Log4j 日志通过 Flume 输出到 HDFS Flume-ng 是一个高可用、可靠、分布式的日志聚合系统,可以实时地从各种数据源(如日志文件、网络 socket、数据库等)中收集数据,并将其...

    Flume集群环境搭建,flume监控

    Flume从1.5.0版本开始,重构了其内部架构,核心组件、配置以及代码架构都进行了重大改动,这个新版本被称为Flume NG(Next Generation),即Flume的新一代版本,用以替代了原来的Flume OG(Original Generation)。...

    flume-chd版本

    解压后,用户可以找到Flume的可执行文件、配置文件、库文件等,以便在Linux环境中部署和运行Flume服务。 4. **安装与配置** 在Linux环境下,首先解压此文件,然后设置环境变量,执行安装脚本。配置Flume时,需要...

    apache-flume.tar.gz

    这个名为 "apache-flume.tar.gz" 的压缩包文件包含了Flume的一个版本,即 apache-flume-1.5.0-bin,这通常代表了一个可执行的二进制发行版,适合在生产环境中部署和使用。 Flume 的核心概念包括源(Sources)、通道...

    BigData大数据涉及到的各个框架的安装部署和实验

    安装在`/opt/apache-flume-1.5.0-bin`,通过`flume-ng`命令进行操作。 7. **Kafka**: Kafka是一个高吞吐量的分布式发布订阅消息系统,常用于构建实时数据管道和流处理应用。尽管在描述中没有明确提到Kafka的安装和...

    BigDataFramwork-实验手册.docx

    其安装目录为/opt/apache-flume-1.5.0-bin,启动命令为bin/flume-ng。配置Flume时,需要定义数据源、通道和目的地。 九、网络配置与SSH 在多节点的大数据集群中,网络配置和SSH无密码登录至关重要。确保各节点间的...

Global site tag (gtag.js) - Google Analytics