FusionInsight 集群功能介绍-Flume

网友投稿 759 2022-05-28

基本原理

简介

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

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

● 通常用于log数据

● 采用ad-hoc方案(多跳,无中心控制节点方案)

● 声明式配置,可以动态更新配置

● 提供上下文路由功能

● 支持负载均衡和故障转移

● 完全的可扩展

结构

Flume Agent由Source、Channel、Sink组成,如图1-31所示,模块说明如表1-4所 示。

图 1-31 Flume 结构图 1

表 1-4 模块说明

FusionInsight 集群功能介绍-Flume

Flume也可以配置成多个Source、Channel、Sink,如图1-32所示:

图 1-32 Flume 结构图 2

Flume还支持多个Flume Agent级联,如图1-33所示。

图 1-33 Flume 级联结构图

原理

Agent之间的可靠性

Agent之间数据交换流程如图1-34所示

图 1-34 Agent 数据传输流程

Flume采用基于Transactions的方式保证数据传输的可靠性,当数据从一个Agent 流向另外一个Agent时,两个Transactions已经开始生效。发送Agent的Sink首先 从Channel取出一条消息,并且将该消息发送给另外一个Agent。如果接受消息的 Agent成功地接受并处理消息,那么发送Agent将会提交Transactions,标识一次 数据传输成功可靠地完成。

当接收Agent接受到发送Agent发送的消息时,开始一个新的Transactions,当该 数据被成功处理(写入Channel中),那么接收Agent提交该Transactions,并向 发送Agent发送成功响应。

如果在某次提交(commit)之前,数据传输出现了失败,将会再次开始上一次 Transactions,并将上次发送失败的数据重新传输。因为commit操作已经将 Transactions写入了磁盘,那么在进程故障退出并恢复业务之后,仍然可以继续上 次的Transactions。

与组件的关系

与 HDFS 的关系

当用户配置HDFS作为Flume的Sink时,HDFS就作为Flume的终数据存储系统, Flume将传输的数据全部按照配置写入HDFS中。

与 HBase 的关系

当用户配置HBase作为Flume的Sink时,HBase就作为Flume的终数据存储系统, Flume将传输的数据全部按照配置写入HBase中。

增强特性

提升传输速度

可以配置将指定的行数作为一个Event,而不仅是一行,提高了代码的执行效率以及减 少写入磁盘的次数。

传输超大二进制文件

Flume根据当前内存情况,自动调整传输超大二进制文件的内存占用情况,不会导致 Outofmemory出现。

支持定制传输前后准备工作

Flume支持定制脚本,指定在传输前或者传输后执行指定的脚本,用于执行准备工 作。

管理客户端告警

Flume通过MonitorServer接收Flume客户端告警,并上报Manager告警管理中心。

Hadoop FusionInsight

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:分布式进阶(二十一)Flume的基础介绍
下一篇:Oracle-多表连接的三种方式解读
相关文章