Flume基础概念

目录

  • 作用
  • 组件构成
    • Client
    • Flow
    • Agent
    • Source
    • Sink
    • Event
  • 和Log4j的区别与定位
  • 事务传出流程
    • 输入到source
    • source端输入
    • Channel 接收
    • 输入到Sink
    • Sink输出


作用

Flume可以从各种来源(如日志文件、消息队列、网络数据、文件系统、数据库等)收集数据,并将其发送到指定的目标位置。
Flume通常用于从多个服务器、应用程序、网络设备等源头收集大量的日志数据,这些日志数据可能包括服务器日志、应用程序日志、安全事件日志等。

组件构成

Client

Client 是生产数据的实体,它运行在一个独立的线程中,负责生成需要被采集和传输的Event。Client不是Flume的一部分,而是与Flume交互的外部系统或应用程序。

Flow

Flow 描述了Event从源点(Source)到达目的点(通常是Sink,但也可能是另一个Agent的Source)的整个迁移过程。Flow是Flume数据管道的核心概念,它定义了数据的流动路径和处理逻辑。

Agent

Agent 是Flume的一个独立进程,它包含了Source、Channel和Sink三个核心组件。Agent负责在JVM上运行Flume,并且每台机器上通常只运行一个Agent。然而,一个Agent内部可以包含多个Source和Sink,以及它们之间的Channel连接。
在这里插入图片描述

Source

Source 是数据收集组件,它负责从Client或其他数据源接收数据,并将其封装成Event后传递给Channel。Source是Flume数据管道的起点,它定义了数据的来源和采集方式。
在这里插入图片描述

Sink

Sink 是数据输出组件,它从Channel中读取并移除Event,然后将这些Event传递到FlowPipeline中的下一个Agent(如果存在的话)或者最终的目的地(如HDFS、Kafka等)。Sink是Flume数据管道的终点,它定义了数据的去向和处理方式。
在这里插入图片描述

Event

Event 是Flume中的基本数据单元,由消息头和消息体组成。消息头包含了一些元数据(如时间戳、优先级等),而消息体则包含了实际的数据内容(如日志记录、Avro对象等)。

Channel
Channel 是一个临时存储,用于保存由Source传递过来的Event。Channel起到了缓冲和队列的作用,它允许Source和Sink以异步的方式工作,从而提高了整个数据管道的吞吐量和容错性。

和Log4j的区别与定位

在这里插入图片描述
Flume是一个日志收集系统,而Log4j只是一个java程序内部的日志框架

事务传出流程

输入到source

不解释,这个没什么需要特别说明的

source端输入

doPut: 将批数据先写入临时缓冲区putList
doCommit: 检查channel内存队列是否足够合并
doRollback: channel内存队列空间不足,回滚数据,直接将数据丢弃。

Channel 接收

Channel临时存储由Source传递过来的Event,起到了缓冲和队列的作用

输入到Sink

doTake: 将数据取到临时缓冲区takeList,并将数据发送到目标位置(比如:HDFS、Hive等)
doCommit: 如果数据全部发送成功,则清除临时缓冲区takeList
doRollback: 数据发送过程中如果出现异常,rollback将临时缓冲区takeList中的数据归还给channel内存队列。

Sink输出

不解释,没什么需要特别注明的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/934527.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PHP语法学习(第七天)-循环语句,魔术常量

老套路了,朋友们,先回忆昨天讲的内容PHP语法学习(第六天)主要讲了PHP中的if…else语句、关联数组以及数组排序。 想要学习更多PHP语法相关内容点击“PHP专栏!” 下列代码都是在PHP在线测试运行环境中得到的!! 还记得电…

生成:安卓证书uniapp

地址: https://ask.dcloud.net.cn/article/35777 // 使用keytool -genkey命令生成证书: 官网: keytool -genkey -alias testalias -keyalg RSA -keysize 2048 -validity 36500 -keystore test.keystore ----------------------------------…

Vue.js:代码架构组成与布局设置

前言:最近在弄一个开源的管理系统项目,前后端分离开发,这里对前端的Vue框架做一个总结,有遗漏和错误的地方欢迎大家指出~ 🏡个人主页:謬熙,欢迎各位大佬到访❤️❤️❤️~ 👲个人简介…

【优选算法-滑动窗口】长度最小的子数组、无重复字符的最长子串、最大连续1的个数、将x减为0的最小操作数、水果成篮

一、长度最小的子数组 题目链接: 209. 长度最小的子数组 - 力扣(LeetCode) 题目介绍: 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其总和大于等于 target 的长度最小的 子数组 [numsl, numsl1, .…

appium学习之二:adb命令

1、查看设备 adb devices 2、连接 adb connect IP:端口 3、安装 adb install xxx.apk 4、卸载 adb uninstall 【包名】 5、把对应目录下的1.txt文件传到手机sdcard下 adb push 1.txt /sdcard 6、进入对应的设备里 adb shell 7、切入sdcard目录 cd /sdcard 8、ls 查…

算法——差分

差分可以看作是前缀和的逆运算,前缀和可以帮我们快速得到某个区间的和,而差分就是我们将原数组看作是一个前缀和数组(q[])我们去构造一个差分数组(c[]) 一维差分 使存在如下关系: q[i] c[1]…

使用 EasyExcel 提升 Excel 处理效率

目录 前言1. EasyExcel 的优点2. EasyExcel 的功能3. 在项目中使用 EasyExcel3.1 引入依赖3.2 实体类的定义与注解3.3 工具类方法的实现3.4 在 Controller 中使用 4. 总结5. 参考地址 前言 在日常开发中,Excel 文件的处理是不可避免的一项任务,特别是在…

健康管理系统(Koa+Vue3)

系统界面(源码末尾获取) 系统技术 Vue3 Koa Nodejs Html Css Js ....... 系统介绍 系统比较简单,轻轻松松面对结业课堂作业.采用的是基于nodejs开发的Koa框架作为后端,采用Vue框架作为前端,完成快速开发和界面展示. 系统获取 啊啊啊宝/KoaVue3https://gitee.com/ah-ah-b…

python进阶-05-利用Selenium来实现动态爬虫

python进阶-05-利用Selenium来实现动态爬虫 一.说明 这是python进阶部分05,我们上一篇文章学习了Scrapy来爬取网站,但是很多网站需要登录才能爬取有用的信息,或者网站的静态部分是一个空壳,内容是js动态加载的,或者人机验证&…

day10性能测试(2)——Jmeter

【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、LoadRunner vs Jmeter 1.1 LoadRunner 1.2 Jmeter 1.3 对比小结 2、Jmeter 环境安装 2.1 安装jdk 2.2 安装Jmeter 2.3 小结 3、Jmeter 文件目录结构 4、Jmeter默认配置修改 5、Jmeter元件、组…

架构15-服务网格

零、文章目录 架构15-服务网格 1、透明通信的涅槃 (1)服务网格 概念 服务网格是一种处理程序间通信的基础设施,主要由数据平面和控制平面组成。它通过边车代理和控制程序管理程序间的通信,弥补了容器编排系统对分布式应用细粒…

day08 接口测试(4)知识点完结!!

【没有所谓的运气🍬,只有绝对的努力✊】 目录 1、postman读取外部数据文件(参数化) 1.1 数据文件简介 1.2 导入外部数据文件 1.2.1 csv文件 1.2.2 导入 json文件 1.3 读取数据文件数据 1.4 案例 1.5 生成测试报告 2、小…

2024年11月HarmonyOS应用开发者高级认证全新题库

注意事项:切记在考试之外的设备上打开题库进行搜索,防止切屏三次考试自动结束,题目是乱序,每次考试,选项的顺序都不同,作者已于2024年11月22日又更新了一波题库,题库正确率99%! 新版…

【Python网络爬虫 常见问题汇总】

目录 1. 爬取图片出现403解决办法:设置请求头中的Referer字段 2.关于干坏事的问题后续不定期更新 欢迎共同探讨学习进步 1. 爬取图片出现403 问题出自案例9,已解决。 【Python网络爬虫笔记】9- 抓取优美图库高清壁纸 当在爬取图库图片时遇到 403 错误…

《探索形象克隆:科技与未来的奇妙融合》

目录 一、什么是形象克隆 二、形象克隆的技术原理 三、形象克隆的发展现状 四、形象克隆的未来趋势 五、形象克隆的应用场景 六、形象克隆简单代码案例 Python 实现数字人形象克隆 Scratch 实现角色克隆效果(以猫为例) JavaScript 实现 Scratc…

Mac软件推荐

Mac软件推荐 截图SnipasteXnipBob 快捷启动Raycast 系统检测Stats 解压缩The UnarchiverKeka(付费) 视频播放IINA 视频下载Downie(付费) 屏幕刘海TopNotchMediaMate(付费)NotchDrop(付费&#x…

Linux——linux系统移植

创建VSCode工程 1、将NXP官方的linux内核拷贝到Ubuntu 2、解压缩tar -vxjf linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 NXP官方开发板Linux内核编译 1、将.vscode文件夹复制到NXP官网linux工程中,屏蔽一些不需要的文件 2、编译NXP官方EVK开发板对应的Linux系统…

TikTok运营选什么网络?要用原生IP吗?

不管是跨境电商运营还是个人IP打造,TikTok都是必不可少的一个大流量平台。但运营TikTok必然要面临网络问题,如果没有妥当的解决方案,不仅难以获取流量,还可能面临封号的风险。因此,选择可靠的网络并合理使用是非常重要…

Spring 基础

什么是 Spring 框架? Spring 是一款开源的轻量级 Java 开发框架,旨在提高开发人员的开发效率以及系统的可维护性。 我们一般说 Spring 框架指的都是 Spring Framework,它是很多模块的集合,使用这些模块可以很方便地协助我们进行开发&#…

Redis篇-5--原理篇4--Lua脚本

1、概述 Redis 支持使用 Lua 脚本来执行复杂的操作,这为 Redis 提供了更强的灵活性和性能优化能力。通过 Lua 脚本,你可以在服务器端执行一系列命令,而不需要多次往返客户端与服务器之间,从而减少了网络延迟并提高了效率。此外&a…