Flume 使用学习小结

Flume 是一个用于收集、聚合和转移大规模日志数据的系统,具备事务机制。文章介绍了Flume的架构,包括Event、Source、Channel、Sink和拦截器,并讨论了Flume的实际使用中遇到的问题,如数据格式错误和分区问题。文中还阐述了Flume的事务处理,特别是MemoryTransaction的PUT和Take事务流程。

概述

  在做埋点数据离线存储到odps中,用到了Flume。一边使用,一边学习了下Flume。其中感受到Flume确实易伸缩、易扩展。其中的组件都可以根据自己的业务特点方便的自定义使用。

Flume可进行大量日志数据采集、聚合和并转移到存储中,并提供数据在流转中的事务机制;
可适用场景:日志—>Flume—>实时计算(如MQ+Storm) 、日志—>Flume—>离线计算(如ODPS、HDFS、HBase)、日志—>Flume—>ElasticSearch等。

Flume架构

  Flume主要分为 Source、Channel、Sink三个组件,他们包含在一个Agent中,一个Agent相当于一个独立的application。数据从源头经过Agent的这几个组件最后到达目的地。一个Flume 服务可同时运行多个Agent,大致架构可参照下图:

_

对照这个图,作一些说明;
- Event 一条日志数据在Flume中对应一个Event对象。不过给他添加了header属性,就是一个Map,放 一些额外信息,可以针对每条Event做特殊处理,比如Channel的选择。这些额外的键值对可以在Event从Source到Channel之间的interceptor(拦截器)中set。
- Source 负责日志流入,比如从文件、网络、MQ等数据源流入数据。
- Channel 负责数据聚合/暂存,以供Sink消费掉,事务机制主要在这里实现
- Sink 负责数据转移到存储,比如从Channel拿到日志后直接存储到ODPS、ElasticSearch等。
- 拦截器 如果配置了拦截器,则Event从Source 进入Channel前,经过拦截器链做过滤或其他处理;如识别不

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值