大数据协作框架之Flume

来源:互联网 发布:12306数据库设计 编辑:程序博客网 时间:2024/06/07 15:03

一、Flume概述

       Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集、聚集、移动信息的服务。Flume仅仅运行在Linux环境下。

      它是一个基于流式的数据的非常简单的(只需要写一个配置文件)、灵活的架构,它也是一个健壮的、容错的。它用一个简单的扩展数据模型用于在线实时应用分析。它的简单表现为:写个source、channel、sink,之后一条命令就能操作成功了。

       Flume、kafka实时的进行数据收集,spark,storm实时去处理,impala实时去查询。

二、Flume架构

       Flume-ng只有一个角色的节点:agent。Agent由source、channel和sink组成。


三、Event

        Event是Flume数据传输的基本单元。Flume以事件的形式将数据从源头传送到最终的目的地。Event由可选的header和载有数据的一个byte array构成。其中,载有的数据对Flume是不透明的,Header是容纳了key-value字符串的无序集合,key在集合内是唯一的,Header可以在上下文路由中使用扩展。


      Source监控某个文件,将数据拿到,封装在一个event中,并put/commit到channel中,channel是一个队列,队列的有点就是先进先出,放好之后尾部一个个event出来,sink主动去从channel中去拉数据,sink再把数据写到某个地方,比如HDFS上面。

四、Flume的特点

4.1复杂流动性

        Flume允许用户进行多级流动到最终目的地,也允许扇出流(一到多)、扇入流(多到一)的、故障转移和失败处理。

4.2可靠性

        事务性的数据传递,保证了数据的可靠性。

4.3 可恢复性

        通道可以以内存或文件的方式实现,内存更快,但是不可恢复,而文件虽然比较慢但提供了可恢复性。


原创粉丝点击