学习笔记-Flume

Apache Flume 是一个分布式、可信任的弹性系统,用于高效收集、汇聚和移动大规模日志信息,从多种不同的数据源到一个集中的数据存储中心(HDFS、HBASE)
功能:
    支持在日志系统中定制各类数据发送方,用户收集数据
    Flume提供对数据进行简单的处理,并写到各种数据接收方的能力
框架:
    数据发生器
    agent 代理模块,对对消息进行接受和汇集,每个agent就是一个守护进程,内部有多个或一个,agent由source(输入)、channel(缓存(file,memory))、sink(输出)三个组件组成,缺一不可,另外还有两个组件可选(Interceptor拦截器、selector)
  1. agent source 一个Flume的源,负责一个外部源
  2. channel 通道,采用被动存储的形式,短暂的数据存储器,在source和sink之间搭建的桥梁
  3. Sink会将事件从Channel中移除,并将事件放置到外部数据介质上,成功取出Event后,会将Event从Channel中移除,必须确切于一个Channel上
  4. selector 两种类型,复制将source 过来的event发往所有Channel和复用可以选择发往哪些Channel
  5. Interceptor  Flume的拦截器是以chain的形式,一个 source可以配置一个或多个拦截器,按照先后顺序处理
    通常agent和collector分别部署在不同的节点,一个agent对应多个collector,agent和server是一对一的,如果在内部对接的话用Avro数据源对接



FLume 的单位是event事件,以event的对象作为数据传输的格式,是内部数据传输的最小单元,由两部分:header(内部数据是key,value的形式)和body(存储数据),header可有可无,做分发的时候就需要用到heade,body存实际的东西

可靠性:
    主要和Channel的类型有关
    source 和sink 封装在一个事务的存储和检索中,即事件的放置或是提供由一个事务通过通道来分别提供,这保证了事件集中在流中可靠的进行端到端的传递 

猜你喜欢

转载自blog.csdn.net/jameslvt/article/details/80926471