Apache Flume-运行机制 & 运行结构图|学习笔记

简介: 快速学习 Apache Flume- 运行机制 & 运行结构图,Flume 的运行机制和采集系统结构图的知识学习,知道 Flume 进行数据采集和传递的流程。

开发者学堂课程【Flume 基础应用实战-企业全场景解决方案Apache Flume- 运行机制 & 运行结构图】学习笔记,与课程紧密联系,让用户快速学习知识。  

课程地址:https://developer.aliyun.com/learning/course/715/detail/12766


Apache Flume- 运行机制 &;运行结构图


内容介绍:

一、Flume 的运行机制

二、Flume 的运行结构图

三、小结

 

一、Flume 的运行机制

Flume 有三个核心的组件。

Source: 采集源,用于跟数据源对接,以获取数据;

Sink:下沉地,采集数据的传送目的,用于往下一级 agent 传递数据或者往最终存储系统传递数据;

Channel:agent 内部的数据传输通道,用于从 source 将数据传递到 sink,临时缓存数据。

这三个组件就构成了 Flume 的核心角色,叫做 Agent,它本身是一个java进程,因为 Flume 是用 java 语言开发的。一般来说,在哪台机器上需要进行数据的收集传递就在这台机器上去启动一个进程 agent 即可,它里面配置好相关的三个组件,就可以完成数据的传递。在它运行的过程当中,有一点需要强调,当它收集完各种各样数据的时候,数据并不是以原生的形式在里面流转,而是做了一个包装,这个包装的数据单位叫做 event,可以把 event 看成一个数据包,它里面有数据的信息,还有数据的信息。在它的信息中,有它自己携带的一些相关属性,重要的是它把涉及到的的数据本身放在它的 body 当中,相当于把数据做了包装。因此,在 Flume 的内部,最小的数据单元叫做 eventevent 下面不可以再分。可以把它形象的理解为在 Flume 整个框架当中,一个个 event 在不停的流动,event 中包装了数据源,这就是一个非常简单的 Flume 运行机制。在实际开发过程中,要做的最大的工作量是通过配置文件指定清楚当中的 Source Sink Channel 分别是什么类型以及有哪些配置参数。

 

二、采集系统结构图

在企业中,用 Flume 进行数据采集,通常会有两种情况,一个叫简单的单 Flume采集,一个是复杂的多个 Flume 之间的相互串联采集

图片1.png

第一个图,也就是采集数据的方案非常简单清晰明了,这时只要启动一个 Flume 的进程即可,在这一个进程中,有 Source Sink Channel 来对接数据源目的地就可以搞定,这叫单 Agent 采集数据。

图片2.png

如果公司当中有非常多的流水线,不同业务线,不同数据源,就需要做一个庞大的数据采集传递,这时就可以使用多个 Agent 之间进行所谓的串联数据的采集。图中可以看到有4个 Agent,首先前面3个 Agent 分别对接3台不同的服务器,然后这3个 Agent 把收集的数据统一汇总到 Agent 4,第4个 Flume 上,接着第4Flume 再经过 S,最终把数据存储到 HDFS 当中,这种情况叫做 Flume 之间的串联。

这里有多个不同的 Flume 软件,可以猜想它是一个分布式软件,但是要强调的是在这四个进程当中没有哪个叫主进程,没有哪个叫进程,它们的地位都是一样的,相当于我们每一个都是数据的传递员,手拉手一起配合来进行数据的传递,因此如果有人说 Flume 是一个主从集群,这时候应该清楚 Flume 当中没有主从,地位都一样都叫做 Agent, 这样就可以满足企业当中一个复杂的结构


三、小结

1、Flume 的运行机制:

(1)Flume 本身是 java 程序,在需要采集数据机器上启动-->agent 进程

(2)agent 进程里面包含了 :source sink channel

3)Flume 中,数据被包装成 event真实的数据是放在 event body 中event是 Flume 中最小的数据单元

2、运行架构

1)简单架构只需要部署一个 agent 进程即可

2)复杂架构多个 agent 之间的串联相当于大家手拉手共同完成数据的采集传输工作在串联的架构中没有主从之分大家的地位都是一样的

Flume 的运行机制和架构,简单了解这么多即可,因为在实际过程中,我们不需要去开发里面的 source sink channel,官方已经提供好各种类型的 source sink channel,我们只需要做一件事,就是根据业务场景去官方找对应类型的 source sink channel,然后把它写在配置当中,就可以满足于业务需求了。

相关文章
|
7月前
|
大数据 Apache
【Flume】Flume常用的拓扑结构
【4月更文挑战第4天】【Flume】Flume常用的拓扑结构
|
7月前
|
运维 Linux Apache
LAMP架构调优(二)——修改Apache运行用户
LAMP架构调优(二)——修改Apache运行用户
242 1
|
7月前
|
运维 Linux Apache
LAMP架构调优(二)——修改Apache运行用户
LAMP架构调优(二)——修改Apache运行用户
42 0
|
7月前
|
前端开发 Java Apache
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
Apache Zeppelin系列教程第七篇——运行paragraph的整个流程分析
87 0
|
7月前
|
Shell
Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
【2月更文挑战第17天】Flume【问题记录 01】【at org.apache.flume.node.Application.main(Application.java:xxx) 类问题整理+其他类型问题总结】【避坑指南】
346 2
|
4月前
|
存储 数据采集 数据处理
【Flume拓扑揭秘】掌握Flume的四大常用结构,构建强大的日志收集系统!
【8月更文挑战第24天】Apache Flume是一个强大的工具,专为大规模日志数据的收集、聚合及传输设计。其核心架构包括源(Source)、通道(Channel)与接收器(Sink)。Flume支持多样化的拓扑结构以适应不同需求,包括单层、扇入(Fan-in)、扇出(Fan-out)及复杂多层拓扑。单层拓扑简单直观,适用于单一数据流场景;扇入结构集中处理多源头数据;扇出结构则实现数据多目的地分发;复杂多层拓扑提供高度灵活性,适合多层次数据处理。通过灵活配置,Flume能够高效构建各种规模的数据收集系统。
89 0
|
28天前
|
数据库连接 PHP Apache
PHP在Apache中如何运行?
PHP在Apache中如何运行?
30 5
|
7月前
|
Java Linux
Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
【2月更文挑战第16天】Flume【环境搭建 01】CentOS Linux release 7.5 安装配置 apache-flume-1.9.0 并验证
136 0
|
7月前
|
SQL 并行计算 大数据
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
关于Flink服务的搭建与部署,由于其涉及诸多实战操作而理论部分相对较少,小编打算采用一个独立的版本和环境来进行详尽的实战讲解。考虑到文字描述可能无法充分展现操作的细节和流程,我们决定以视频的形式进行分析和介绍。因此,在本文中,我们将暂时不涉及具体的搭建和部署步骤。
562 3
【大数据技术攻关专题】「Apache-Flink零基础入门」手把手+零基础带你玩转大数据流式处理引擎Flink(基础加强+运行原理)
|
7月前
|
消息中间件 Java Kafka
Apache Hudi + Flink作业运行指南
Apache Hudi + Flink作业运行指南
252 1

相关实验场景

更多

推荐镜像

更多