Flume 1.5日志采集并存入mongodb的安装搭建

Flume的介绍就不多说了,大家可以自己搜索。但是目前网上大都是Flume 1.4版本或之前的资料,Flume 1.5感觉变化挺大的,如果你准备尝试一下,我这里给大家介绍一下最小化搭建方案,并且使用MongoSink将数据存入mongodb。完全单机运行,没有master,没有collector(说白了collector也就是一个agent,只是数据来源于多个其他agent),只有一个agent。把这套东西理解了你就可以自由发挥了

Flume是必须要求java运行环境的哈,jdk安装就不解释了,推荐yum安装。

另外JDK安装好以后不用设置什么环境变量,flume其实可以自己找到的,只是会发出一个警告而已,无视之

首先去下载Flume 1.5安装包

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

只需要下载apache-flume-1.5.0.1-bin.tar.gz就可以了,32位64位系统通吃

这里我们把安装包放到/home目录下,然后解压缩

tar zxvf apache-flume-1.5.0-bin.tar.gz

把解压得到的apache-flume-1.5.0-bin文件夹改名成flume,所以我们flume的路径是/home/flume

网上很多说要设置flume home环境变量,其实不用的

这里我们新增一个配置文件到/home/flume/conf/netcat.conf(其中的agent2/source2/sink2/channel2都是自己定义的名称,随便改)

# 定义组件名称
agent2.sources = source2
agent2.sinks = sink2
agent2.channels = channel2

# 定义数据入口
agent2.sources.source2.type = netcat
agent2.sources.source2.bind = 192.168.6.198
agent2.sources.source2.port = 44444
agent2.sources.source2.channels = channel2

# 定义数据出口
agent2.sinks.sink2.type = org.riderzen.flume.sink.MongoSink
agent2.sinks.sink2.host = 192.168.6.222
agent2.sinks.sink2.port = 27017
agent2.sinks.sink2.model = single
agent2.sinks.sink2.collection = events
agent2.sinks.sink2.batch = 100
agent2.sinks.sink2.channel = channel2

# 使用内存管道
agent2.channels.channel2.type = memory
agent2.channels.channel2.capacity = 1000
agent2.channels.channel2.transactionCapacity = 100

以上配置文件相信大家一看就很明了了,我简单介绍一下:

数据源是source2,而source2的定义是接收本机192.168.6.198:44444端口发过来的数据,然后存放到channel2缓冲管道里面去

channel2是什么呢?看最下面对channel2的定义,它是一个内存缓冲队列,容量是1000条数据,满100条就会被sink处理掉

那么sink的定义呢?这里我们用到了Leon Lee(李龙?可能是国内哪位大神,感谢你哈)编写的一个MongoSink,作用是把从channel2取出的数据存入MongoDB,并且累计100条数据才提交

MongoSink请到这里下载:https://github.com/leonlee/flume-ng-mongodb-sink

MongoSink我简单说一下,只需要把他打成jar包丢到/home/flume/lib里面就行了,当然别忘了把mongodb驱动也丢进去。以后你要是开发其他扩展包都是丢到lib里面就好

好,那么我们就清楚了,flume的作用就是从source获取数据,存入channel缓冲队列,最后由sink放入永久存储

运行以下命令启动flume

/home/flume/bin/flume-ng agent --conf /home/flume/conf --conf-file /home/flume/conf/netcat.conf --name agent2 -Dflume.monitoring.type=http -Dflume.monitoring.port=34545

大致解释一下:

--name agent2                指定当前运行的这个agent的名称

--conf /home/flume/conf        这个参数最好指定绝对路径,说明你的配置文件存放目录,不单单指agent的配置,其中还有log4j的配置,不然无法记录日志

--conf-file /home/flume/conf/netcat.conf         这个是指当前要运行的agent所使用的配置文件

-Dflume.monitoring.type=http          指定开启HTTP监控,可以通过浏览器直接访问本机HTTP地址查看flume运行状态

-Dflume.monitoring.port=34545            指定HTTP监控的端口

如果你需要在控制台显示一些调试信息的话请自行配置/home/flume/conf/log4j.properties

OK,等着成功吧

现目前我们主要是解决了日志数据不必直接写mongo库,只要把IP和端口告知其他项目团队,他们直接往这里发送数据就行了

后期考虑到mongodb可能有些局限性,我们可以非常灵活的改写sink,把数据存入hdfs,然后就和高大上的hadoop亲密接触拉

时间: 2024-10-08 11:15:02

Flume 1.5日志采集并存入mongodb的安装搭建的相关文章

Flume 1.5日志收集和存款mongodb安装结构

Flume该演示是不是说.你可以自己搜索. 但现在的互联网主要是Flume 1.4前版本号的信息.Flume 1.5在轰动的大变化.假设你准备尝试,我在这里给大家介绍一下程序最小化结构,和使用MongoSink的数据被存储mongodb.完全独立的执行,没有master.没有collector(说白了collector也就是一个agent,仅仅是数据来源于多个其它agent),仅仅有一个agent.把这套东西理解了你就能够自由发挥了 Flume是必需要求java执行环境的哈,jdk安装就不解释了

基于Flume+LOG4J+Kafka的日志采集架构方案

本文将会介绍如何使用 Flume.log4j.Kafka进行规范的日志采集. Flume 基本概念 Flume是一个完善.强大的日志采集工具,关于它的配置,在网上有很多现成的例子和资料,这里仅做简单说明不再详细赘述.Flume包含Source.Channel.Sink三个最基本的概念: Source——日志来源,其中包括:Avro Source.Thrift Source.Exec Source.JMS Source.Spooling Directory Source.Kafka Source.

日志采集框架Flume的安装及使用

日志采集框架Flume的安装及使用 1.Flume介绍 1.1.Flume概述 Flume是一个分布式.可靠.和高可用(旧版Flume og才有高可用)的海量日志采集.传输和聚合的系统. Flume可以采集文件,socket数据包等各种形式源数据, 又可以将采集到的数据输出到HDFS.hbase.hive.kafka等众多外部存储系统中 一般的采集需求,通过对flume的简单配置即可实现 Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景 1.2

flume日志采集框架使用

flume日志采集框架使用 本次学习使用的全部过程均不在集群上,均在本机环境,供学习参考 先决条件: flume-ng-1.6.0-cdh5.8.3.tar  去cloudrea下载flume框架,笔者是用cdh5.8.3的套餐 flume的使用环境: 采集特定目录到hdfs环境以供分析离线数据 监听特定端口的socket流数据 本次将以上两种情况的使用加以记录供以后参考 解压 flume-ng-1.6.0-cdh5.8.3.tar mv flume-ng-1.6.0-cdh5.8.3 flum

flume 日志采集工具

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集.聚合和传输的系统,Flume支持在日志系统中定制各类数据发送方,用于收集数据:同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力. 当前Flume有两个版本Flume 0.9X版本的统称Flume-og,Flume1.X版本的统称Flume-ng.由于Flume-ng经过重大重构,与Flume-og有很大不同,使用时请注意区分.

日志采集框架Flume

概述 Flume是一个分布式.可靠.和高可用的海量日志采集.聚合和传输的系统. Flume可以采集文件,socket数据包等各种形式源数据,又可以将采集到的数据输出到HDFS.hbase.hive.kafka等众多外部存储系统中 一般的采集需求,通过对flume的简单配置即可实现 Flume针对特殊场景也具备良好的自定义扩展能力,因此,flume可以适用于大部分的日常数据采集场景 运行机制 1. Flume分布式系统中最核心的角色是agent,flume采集系统就是由一个个agent所连接起来形

flume集群日志收集

一.Flume简介 Flume是一个分布式的.高可用的海量日志收集.聚合和传输日志收集系统,支持在日志系统中定制各类数据发送方(如:Kafka,HDFS等),便于收集数据.其核心为agent,agent是一个java进程,运行在日志收集节点. agent里面包含3个核心组件:source.channel.sink.  source组件是专用于收集日志的,可以处理各种类型各种格式的日志数据,包括avro.thrift.exec.jms.spooling directory.netcat.seque

flume学习(三):flume将log4j日志数据写入到hdfs(转)

原文链接:flume学习(三):flume将log4j日志数据写入到hdfs 在第一篇文章中我们是将log4j的日志输出到了agent的日志文件当中.配置文件如下: [plain] view plaincopy tier1.sources=source1 tier1.channels=channel1 tier1.sinks=sink1 tier1.sources.source1.type=avro tier1.sources.source1.bind=0.0.0.0 tier1.sources

基于Flume的美团日志收集系统(一)架构和设计【转】

美团的日志收集系统负责美团的所有业务日志的收集,并分别给Hadoop平台提供离线数据和Storm平台提供实时数据流.美团的日志收集系统基于Flume设计和搭建而成. <基于Flume的美团日志收集系统>将分两部分给读者呈现美团日志收集系统的架构设计和实战经验. 第一部分架构和设计,将主要着眼于日志收集系统整体的架构设计,以及为什么要做这样的设计. 第二部分改进和优化,将主要着眼于实际部署和使用过程中遇到的问题,对Flume做的功能修改和优化等. 1 日志收集系统简介 日志收集是大数据的基石.