Flume日志收集系统

一、概念:

apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。flume具有高可用,分布式,配置工具,其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。

二、应用场景

比如我们在做一个电子商务网站,然后我们想从消费用户中访问点特定的节点区域来分析消费者的行为或者购买意图. 这样我们就可以更加快速的将他想要的推送到界面上,实现这一点,我们需要将获取到的她访问的页面以及点击的产品数据等日志数据信息收集并移交给Hadoop平台上去分析.而Flume正是帮我们做到这一点。现在流行的内容推送,比如广告定点投放以及新闻私人定制也是基于次,不过不一定是使用FLume,毕竟优秀的产品很多,比如facebook的Scribe,还有Apache新出的另一个明星项目chukwa,还有淘宝Time Tunnel。

三、Flume的优势

  1. Flume可以将应用产生的数据存储到任何集中存储器中,比如HDFS,HBase

  2. 当收集数据的速度超过将写入数据的时候,也就是当收集信息遇到峰值时,这时候收集的信息非常大,甚至超过了系统的写入数据能力,这时候,Flume会在数据生产者和数据收容器间做出调整,保证其能够在两者之间提供一共平稳的数据.

  3. 提供上下文路由特征

  4. Flume的管道是基于事务,保证了数据在传送和接收时的一致性.

  5. Flume是可靠的,容错性高的,可升级的,易管理的,并且可定制的。

四、 Flume具有的特征:

  1. Flume可以高效率的将多个网站服务器中收集的日志信息存入HDFS/HBase中

  2. 使用Flume,我们可以将从多个服务器中获取的数据迅速的移交给Hadoop中

  3. 除了日志信息,Flume同时也可以用来接入收集规模宏大的社交网络节点事件数据,比如facebook,twitter,电商网站如亚马逊,flipkart等

  4. 支持各种接入资源数据的类型以及接出数据类型

  5. 支持多路径流量,多管道接入流量,多管道接出流量,上下文路由等

  6. 可以被水平扩展

五、安装

从下载页面(http:flume.apache.org/download.html)下载一个稳定版本的Flume二进制发行包,并在适当的位置解压缩该文件包:

tar xzf apache-flume-x.y.z.-bin.tar.gz

为了方便起见,可以把Flume的二进制文件路径添加到自己的路径中:

export FLUME_HOME=~/sw/apache-flume-x.y.z.-bin

export PATH=PATH:FLUME_HOME/bin

然后使用Flume-ng命令启动Flume代理

配置文件

注意:

1.不能将注释放到代码后面

2.hdfs的log文件夹不会自动创建

3.本地log文件需要有日志

  • vim dir.dfs.conf(编辑一个文件)

  • 配置文件

#定义三大组件的名称
ag1.sources = source1
ag1.sinks = sink1
ag1.channels = channel1

# 配置source组件
ag1.sources.source1.type = spooldir
ag1.sources.source1.spoolDir = /opt/log/
ag1.sources.source1.fileSuffix=.FINISHED
ag1.sources.source1.deserializer.maxLineLength=5120

# 配置sink组件
ag1.sinks.sink1.type = hdfs
ag1.sinks.sink1.hdfs.path =hdfs://weekend06:9000/fengzelog/%y-%m-%d/%H-%M
ag1.sinks.sink1.hdfs.filePrefix = log
ag1.sinks.sink1.hdfs.fileSuffix = .log
ag1.sinks.sink1.hdfs.batchSize= 100
ag1.sinks.sink1.hdfs.fileType = DataStream
ag1.sinks.sink1.hdfs.writeFormat =Text

## roll:滚动切换:控制写文件的切换规则
ag1.sinks.sink1.hdfs.rollSize = 512000
## 按文件体积(字节)来切   
ag1.sinks.sink1.hdfs.rollCount = 1000000
## 按event条数切
ag1.sinks.sink1.hdfs.rollInterval = 60
## 按时间间隔切换文件
## 控制生成目录的规则
ag1.sinks.sink1.hdfs.round = true
ag1.sinks.sink1.hdfs.roundValue = 10
ag1.sinks.sink1.hdfs.roundUnit = minute

ag1.sinks.sink1.hdfs.useLocalTimeStamp = true

# channel组件配置
ag1.channels.channel1.type = memory
ag1.channels.channel1.capacity = 500000
## event条数
ag1.channels.channel1.transactionCapacity = 600
##flume事务控制所需要的缓存容量600条event

# 绑定source、channel和sink之间的连接
ag1.sources.source1.channels = channel1
ag1.sinks.sink1.channel = channel1
复制代码
  • 使用Flume-ng命令启动Flume代理:
  • bin/flume-ng agent -c conf -f dir-hdfs.conf -n ag1 -Dflume.root.logger=INFO,console(成功啦)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值