flume 三大核心组件

http://archive.cloudera.com/cdh5/cdh/5/ flume 下载地址
http://archive.cloudera.com/cdh5/cdh/5/flume-ng-1.6.0-cdh5.7.0/FlumeUserGuide.html 官方相关文档
http://flume.apache.org/FlumeUserGuide.html
http://flume.apache.org/releases/index.html flume 相关版本文档
=== FLUME 概述 ==
Apache Flume is a distributed(分布式), reliable(高可靠), and available(高可用的服务) system for efficiently collecting(收集),
aggregating(聚合) and moving(移动) large amounts of log data from many different sources to a centralized data store.
It has a simple and flexible(灵活) architecture based on streaming data flows(流式数据).
It is robust(健壮性) and fault tolerant(容错性) with tunable reliability mechanisms and many failover and recovery mechanisms(故障恢复过来的机制).
It uses a simple extensible data model that allows for online analytic application(在线实时分析应用).


webserver(源端日志) ==>> flume(收集) ==>> HDFS(目的地)
flume 是由cloudera 提供的一个分布式、高可靠
高可用的服务,用于分布式的海量日志的高效收集 聚合、移动系统
flume的设计目标
 可靠性
 拓展性
 管理性(agent)
业界同类产品的对比
 Flume: cloudera /apache 基金会 java开发的
 scribe : Facebook C/c++ 负载均和容错性不是太好,已经停止维护了
 chukwa : Yahoo/apache java开发的 .负载均 已经停止维护了
 kafka :
 fluentd : Ruby
 logstash :ELK
 
 FLUME发展史
 cloudera 0.9.2 --flume-og
 flume-728 flume-ng -->> apache
 2012.7 1.0
 2015.5 1.6
 ~ 1.7

====Flume 三大核心组件及架构==


flume 总体架构图

flume 三大核心组件


flume 三大组件架构图

flume 三大核心组件

source:收集
source 支持很多source类型,以下是经常用的类型 
Avro Source 序列化
Exec Source
Spooling Directory Source (对文件夹进行监控的)
Kafka Source
NetCat TCP Source
NetCat UDP 




channel:   负责日志暂时存储和聚合,不可能长时间停留在此

Memory Channel

            事件存储在内存中
            优点: 速度快
            缺点: 同步挂了,内存中的事件就丢失了

JDBC Channel  一般不怎么用 ,有些场景 可能会用到
Kafka Channel

File Channel

                事件存储在文件中

                失败了可以恢复

Spillable Memory Channel
Pseudo Transaction Channel
Custom Channel


sink: 输出、转移存储channel中的数据
读取channel中的数据,然后推送到目的地(HDFS/Kafka)



Hive Sink
Logger Sink  (控制台)

Avro Sink/Thrift sink 

                序列化,发送到指定的rpc端口
可以配置多层flume

IRC Sink
File Roll Sink
Null Sink
HBaseSinks
HBaseSink
AsyncHBaseSink
MorphlineSolrSink
ElasticSearchSink(ES)
Kite Dataset Sink
Kafka Sink
HTTP Sink






三大组件是如何保证事务的呢?