Flume简介与基础原理

随着大数据、云计算、PaaS平台的普及,虚拟化、容器化等技术的应用,越来越多的服务部署在云端。但是云端的服务不是物理的固定资源,以往通过SSH登陆或FTP获取的方式,就不再适用了。在这种场景下,需要一款海量日志数据高效采集、聚合、传输的服务。

Flume简介

Flume是Cloudera提供的一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。支持在系统中定制各类数据发送方,用于有效收集流式数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。抽象来讲,Flume就像一个水槽,从各种水龙头接收各种液体,然后输送到指定区域。

Flume由Cloudera于2009年7月开源,目前是Apache的顶级项目。同Flume相似的日志收集系统还有Facebook Scribe、Apache Chuwka等。

Flume发展历程

Flume的发展经历了两代,第一代指0.9.X版本,即Flume OG(Original Generation),其具体代码工程臃肿、核心组件设计不合理、核心配置不标准等缺点。第二代指1.x版本,即Flume NG(Next Generation),重构了核心组件、核心配置及代码架构,重构后的Flume 纳入Apache 旗下。Cloudera Flume 更名为 Apache Flume。

Flume主要发展历程

以下主要针对Flume NG进行介绍。

Flume优势点

1、可靠性:节点出现故障时,日志能够被传送到其他节点上而不会丢失。此外,进入数据速率大于写出速率,可以起到缓存作用,保证流的平稳。

2、可管理性:所有agent和colletor由master统一管理,这使得系统便于维护。

3、架构&功能可扩展性:架构可扩展性:指采用了三层架构,agent,collector和storage,每一层均可以水平扩展。且master允许有多个(使用ZooKeeper进行管理和负载均衡),这就避免了单点故障问题。功能可扩展性:Flume自带了很多组件,用户可添加自己的Agent(如File、Syslog等)、Collector或Storage(如File、HDFS等)。

4、存储便利性:数据可存储到任何集中存储器中,如:HDFS、HBase

5、多源支持:支持各种接入资源数据的类型以及接出数据类型

6、数据一致性:基于事务型的管道,保证了数据在传送和接收时的一致性

Flume适用场景

1、日志收集:Flume支持在日志系统中定制各类数据发送方,有效收集数据。

2、数据处理:Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)。

Flume架构原理

Flume采用了分层架构,分别为Agent、Collector和Storage。其中,Agent和Collector均由Source和Sink两部分组成,Source是数据来源,Sink是数据去向。



Flume架构图


Flume的一些核心概念:

Client:生产数据,将其发送到Flume Agent。

Agent:一个独立的Flume进程,包含组件Source、Channel、Sink。

Event:数据传输的基本单元,带有一个可选的消息头。

Source:收集数据。从Client收集数据,接收event,传递给一个或多个Channel。数据源可以是监听的网络端口、本地文件系统、Kafka消息等。支持类型包括:Avro Source、Thrift Source、Exec Source、JMS Source、Spooling Directory Source、Kafka Source、NetCat Source、Sequence Generator Source、Syslog Source、HTTP Source、Stress Source、Legacy Source、Custom Source、Scribe Source以及Twitter 1% firehose Source。

Channel:缓存数据。中转Event的临时存储,当sink从channel中成功取走数据,event将会被从channel中移除。支持类型包括:Memory Channel、JDBC Channel、Kafka Channel、File Channel、Spillable Memory Channel、Pseudo Transaction Channel、Custom Channel。

Sink:输出数据。消费channel中的数据,将数据发送至下一跳或者最终目的地,如将数据写入到HDFS或HBase中。支持类型包括:HDFS Sink、Hive Sink、Logger Sink、Avro Sink、Thrift Sink、IRC Sink、File Roll Sink、Null Sink、HBase Sink、Async HBase Sink、Morphline Solr Sink、Elastic Search Sink、Kite Dataset Sink、Kafka Sink、Custom Sink。

Source、Channel、Sink三者之间的具体关系如下图所示。Source和Channel是多对多的关系,即一个Source可以写入多个Channel,多个Source也可以写入一个Channel。Sink与Channel是一对多的关系,即一个Sink只能从一个Channel里读取事件,但多个Sink也可以从一个Channel里读取事件。


Flume数据流关系
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270