zoukankan      html  css  js  c++  java
  • Hadoop-No.15之Flume基于事件的数据收集和处理

    Flume是一种分布式的可靠开源系统,用于流数据的高效收集,聚集和移动.Flume通常用于移动日志数据.但是也能移动大量事件数据.如社交媒体订阅,消息队列事件或者网络流量数据.

    Flume架构

    这里写图片描述

    • Flume的数据源使用来自外部数据源的时间,然后转发到Channel中.外部数据源可以是任何一个能够产生事件的系统.比如Twitter这样的社交媒体网站,机器日志,或者消息队列.实施Flume数据源的目的是使用来源于特定外部数据源的时间.很多数据源都能关于Flume一起使用.包括AvroSource,SpoolDirectorySource,HTTPSource与JMSSource.

    • Flume 拦截器能够拦截时间,并且能在传输过程中对事件做出修改 .Flume拦截器还能够转化时间,丰富时间或者实时Java类任何一种基本的操作.拦截器常用于格式化,分区,过滤,分片,验证,或者将源数据用于事件

    • 选择器为事件提供了路径.用户能够使用选择器将时间发送到零至多个路径.正因为如此,如果需要分至多个Channel,或者需要基于事件发送到特定的Channel,那么选择器会非常有用.

    • Flume Channel存储事件,直到填满一个Sink.最常用的Channel为Memory Channel与File Channel. Memory Channel 将事件存储于内存.在Channel之重提供了最佳性能.但是如果处理或者主机操作失灵,将会丢失时间,导致可靠性降到最低.更为常用的磁盘Channel通过磁盘的持久存储提供更持久的事件存储.选择正确的Channel是一个很重要的构架决策,需要平衡性能与持久性.

    • Sink将事件从Channel中移除并传输到目的位置.目的位置可能是事件的最终目标系统.或者可以进一步进行Flume处理的位置.常用的Flume Sink是HDFS Sink.顾名思义,他会将事件写入HDFS文件中

    • Flume agent是这些组件的容器.承载着Flume数据源,Sink,Channel等JVM进程

    Flume的特点

    • 可靠性

      事件会一直在Channel中存储,直到传输到下一个阶段

    • 可恢复性

      事件可以持久化到硬盘,然后在出现错误时回复

    • 声明式

      无需编码,配置会指定各组件的组合方式

    • 高度定制化

      尽管Flume包含大量的数据源,Sink以及框架外的组成,但它提供高度可插拔的框架,能按照用户的需求定制化的市县.

  • 相关阅读:
    Jquery
    JavaScript
    poj--2115 C Looooops
    poj--3970 party
    poj 1061 青蛙的约会
    hdu1250--Hat's Fibonacci
    2318--TOYS
    扩展欧几里得--让你一次刷个够
    关于大数加法的解法
    有关环形数组的约瑟夫问题
  • 原文地址:https://www.cnblogs.com/bilaisheng/p/10210990.html
Copyright © 2011-2022 走看看