Flume技术原理

摘要:
Flume支持根据用户自定义收集数据的能力。驱动源:外部主动向Flume发送数据,并驱动Flume接收数据。该场景主要用于收集FusionInsight集群外部节点上的日志,并最终通过多个Flume节点将其收集到集群中。在同一个Flume内传输时,不需要加密。它用于流程内的数据交换。

转:https://www.e-learn.cn/content/qita/690288

Flume是开源日志系统。是一个分布式、可靠性和高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,FLume提供对数据进行简单处理,并写到各种数据接收方(可定制)的能力。

Flume是流式日志采集工具,FLume提供对数据进行简单处理并且写到各种数据接收方(可定制)的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、Thift、Avro、Syslog、Kafka等数据源上收集数据的能力。

  • 提供从固定目录下采集日志信息到目的地(HDFS,HBase,Kafka)能力。
  • 提供实时采集日志信息(taidir)到目的地的能力。
  • FLume支持级联(多个Flume对接起来),合并数据的能力。
  • Flume支持按照用户定制采集数据的能力。

Flume技术原理第1张

图:Flume在FusionInsight中的位置

Flume是收集、聚合事件流数据的分布式框架。

Flume技术原理第2张
图:Flume基础架构图

Flume基础架构:Flume可以单节点直接采集数据,主要应用于集群内数据。

Flume技术原理第3张
图:Flume多agent架构

Flume多agent架构:Flume可以将多个节点连接起来,将最初的数据源经过收集,存储到最终的存储系统中。主要应用于集群外的数据导入到集群内。

Flume技术原理第4张

图:Flume架构图

各组件具体介绍如下:

  • events:Flume当中对数据的一种封装。是一个数据单元。flume传输数据最基本的单元。

  • Interceptor:拦截器,主要作用是将采集到的数据根据用户的配置进行过滤和修饰。

  • Channel Selector:通道选择器,主要作用是根据用户配置将数据放到不同的Channel当中。
  • Channel:主要作用是临时的缓存数据。
  • Sink Runner:sink的运行器,主要是通过它来驱动Sink Processor,Sink Processor驱动Sink来从Channel当中获取数据。
  • Sink Processor:主要策略有,负载均衡,故障转移以及直通。
  • Sink:主要作用是从Channel当中取出数据,并将数据放到不同的目的地。

Source负责接收events或通过特殊机制产生events,并将events批量放到一个或多个Channels。有驱动和轮询2中类型的Source。

  • 驱动型Source:是外部主动发送数据给Flume,驱动Flume接收数据。
  • 轮询source:是FLume周期性主动去获取数据。

Source必须至少和一个channel关联。

Source的类型如下:

Flume技术原理第5张

Channel位于Source和Sink之间,Channel的作用类似队列,用于临时缓存进来的events,当Sink成功地将events发送到下一跳的channel或最终目的,events从Channel移除。

不同的Channel提供的持久化水平也是不一样的:

  • Memory Channel:不会持久化。消息存放在内存中,提供高吞吐,但提供可靠性;可能丢失数据。
  • File Channel:对数据持久化;基于WAL(预写式日志Write-Ahaad Log)实现。但是配置较为麻烦,需要配置数据目录和checkpoint目录;不同的file channel均需要配置一个checkpoint目录。
  • JDBC Channel:基于嵌入式Database实现。内置derby数据库,对event进行了持久化,提供高可靠性;可以取代同样持久特性的file channel。

Channels支持事物,提供较弱的顺序保证,可以连接任何数量的Source和Sink。

Sink负责将events传输到下一跳或最终目的,成功完成后将events从channel移除。

必须作用于一个确切的channel。

Sink类型:

Flume技术原理第6张
Flume技术原理第7张
图:Flume采集日志文件

Flume支持将集群外的日志文件采集并归档到HDFS、HBase、Kafka上,供上层应用对数据分析、清洗数据使用。

Flume技术原理第8张
图:Flume级联

Flume支持将多个Flume级联起来,同时级联节点内部支持数据复制。

这个场景主要应用于:收集FusionInsight集群外上的节点上的日志,并通过多个Flume节点,最终汇聚到集群当中。

Flume技术原理第9张
图:Flume级联消息压缩、加密

Flume级联节点之间的数据传输支持压缩和加密,提升数据传输效率和安全性。

在同一个Flume内部进行传输时,不需要加密,为进程内部的数据交换。

Flume技术原理第10张
图:Flume数据监控

Source接收的数据量,Channel缓存的数据量,Sink写入的数据量,这些都可以通过Manager图形化界面呈现出来。

Flume技术原理第11张
图:Flume传输可靠性原理

Flume在传输数据过程中,采用事物管理方式,保证数据传输过程中数据不会丢失,增强了数据传输的可靠性,同时缓存在channel中的数据如果采用了file channel,进程或者节点重启数据不会丢失。

Flume技术原理第12张
图:Flume传输过程中出错情况

Flume在传输数据过程中,如果下一跳的Flume节点故障或者数据接收异常时,可以自动切换到另外一路上继续传输。

Flume技术原理第13张
图:过滤原理

Flume在传输数据过程中,可以见到的对数据简单过滤、清洗,可以去掉不关心的数据,同时如果需要对复杂的数据过滤,需要用户根据自己的数据特殊性,开发过滤插件,Flume支持第三方过滤插件调用。

免责声明:文章转载自《Flume技术原理》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SSL/TLS协议运行机制的概述将 notepad++ 添加到鼠标右键菜单 带图标下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

鸢尾花种类预测--数据集

1 案例:鸢尾花种类预测 Iris数据集是常用的分类实验数据集,由Fisher, 1936收集整理。Iris也称鸢尾花卉数据集,是一类多重变量分析的数据集。关于数据集的具体介绍: 2 scikit-learn中数据集介绍 2.1 scikit-learn数据集API介绍 sklearn.datasets 加载获取流行数据集 datasets.load_...

学习vue结合ajax查询出后台数据

第一步:先获取后台的API 这里已经写好了后台,API是bookAction_getAllBook 第二步:创建jsp文件并导入vue.js和JQuery.js 第三步:写上Model 第四步:写上View 这时页面上的显示的数据都是写死的,这时候就需要写上ajax通过它来获取到后台的数据并把它显示出来 第五步:ajax 先把model定义成一...

【基础组件2】Flume入门(二)Agent

工作方式 Flume-og采用了多Master的方式。为了保证配置数据的一致性,Flume引入了ZooKeeper,用于保存配置数据,ZooKeeper本身可保证配置数据的一致性和高可用,另外,在配置数据发生变化时,ZooKeeper可以通知Flume Master节点。Flume Master间使用gossip协议同步数据。 Flume-ng最明显的改动...

SQL Server2012如何导出sql脚本并且还原数据库

上次介绍过如何通过bak文件来还原数据库文件,今天来介绍一下如何通过导出sql脚本的方式来备份并且还原新的数据库,不过这种方式比较适合数据库数据不太多的中小型数据表,下面通过SQL Server2012为例来进行说明。 一 备份数据库 1 选择某一个数据库,右键依次选择:任务==》生成脚本; 2 选择要编写脚本的数据库对象,注意此处可以选择特定的数据库对象...

数据挖掘中分类算法小结_数据分析师

数据挖掘中分类算法小结_数据分析师 数据仓库,数据库或者其它信息库中隐藏着许多可以为商业、科研等活动的决策提供所需要的知识。分类与预测是两种数据分析形式,它们可以用来抽取能够描述重要数据集合或预测未来数据趋势的模型。分类方法(Classification)用于预测数据对象的离散类别(Categorical Label);预测方法(Prediction )...

SVG技术入门:线条动画实现原理

相信大家都见到过这样神奇的技术:一副线条构成的画能自动画出自己。非常的酷。Jake Archibald是这种SVG技术的首创者,并且写了一篇非常好的文章来描述它是如何实现的。Brian Suda也在24 Ways网站上讨论过它。 Polygon使用它在一篇设计方面的文章里创造出了非常神奇的效果。Codrops也做出了一些非常漂亮的例子。 其实我没有什么好增...