初识Flume

        Flume是一个分布式、可靠、和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。apache Flume 是一个从可以收集例如日志,事件等数据资源,并将这些数量庞大的数据从各项数据资源中集中起来存储的工具/服务,或者数集中机制。其设计的原理也是基于将数据流,如日志数据从各种网站服务器上汇集起来存储到HDFS,HBase等集中存储器中。

        Flume 初始的发行版本目前被统称为 Flume OG(original generation),属于 cloudera。但随着 Flume 功能的扩展,Flume OG 代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点暴露出来,尤其是在 Flume OG 的最后一个发行版本 0.94.0 中,日志传输不稳定的现象尤为严重。为了解决这些问题,2011 年 10 月 22 号,cloudera 完成了 Flume-728,对 Flume 进行了里程碑式的改动:重构核心组件、核心配置以及代码架构,重构后的版本统称为 Flume NG(next generation);改动的另一原因是将 Flume 纳入 apache 旗下,cloudera Flume 改名为 Apache Flume。

 Flume OG和NG的架构

 Flume OG的架构:

    

        上面这个是Flume的结构,在Flume中,最重要的是data flow(数据流),数据流描述了,数据从产生,处理,写入的全过程,实现部分为Flumn的data flow。

        Flume提供了从console(控制台)、RPC(Thrift-RPC)、text(文件)、tail(UNIX tail)、syslog(syslog日志系统,支持TCP和UDP等2种模式),exec(命令执行)等数据源上收集数据的能力。同时,Flume的数据接受方,可以是console(控制台)、text(文件)、dfs(HDFS文件)、RPC(Thrift-RPC)和syslogTCP(TCP syslog日志系统)等。
  其中,收集数据有2种主要工作模式,如下:
  Push Sources:外部系统会主动地将数据推送到Flume中,如RPC、syslog。

  Polling Sources:Flume到外部系统中获取数据,一般使用轮询的方式,如text和exec。

        Flume采用分层架构(Agent,Collector,Storage)Agent用于数据的采集,Agent是Flume数据流的产生地,Agent将数据流传输到Collector中,Collector负责数据的汇聚,会产生更大的数据流,然后传输到Storage。Agent和Collector分成两个部分,分别是source和sink,source是数据来源,sink是数据去向。Flume使用两个组件:Master和Node,Node根据在Master shell或web中动态配置,决定其是作为Agent还是Collector。

        Collector负责数据的汇聚,将数据发送的Storage,它的source和sink与Agent相似。

        Storage是存储系统,可以是一个普通file,也可以是HDFS,HIVE,HBase,分布式存储等。

        Flumn对hadoop和hbase依赖在于jar,而不是Flumn启动前必须启动hadoop和hbase。

Flume NG的架构:

Flume的明显改动在组件的重构:取消了集中管理配置的master和zookeeper,成为一个纯粹的传输工具。

Flume NG中读取数据和写入数据是由不同的线程完后的,在OG中读数据线程同时执行写入的命令(发生故障除外),写入速度变慢的时候,导致读取的速度变慢。NG的异步处理使读入线程可以正常工作无需注意下游的操作。


web server数据源,source将数据包装成event,然后将event发送到channel(通道),Sink从channel拿到event进行消费。

Flume的核心是Agent,Agent是一个java进程,它存在于日志收集端,通过Agent收集日志,暂存起来,最后发送给目的地。

是基于source与sink的模式,source作为输入,sink作为输出,连接source与sink的对象是channel。

下一篇为Flume的安装与案例


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值