当前位置: 首页 > news >正文

Flume的概念和原理

一、Flume的概念

1、flume 作为 cloudera 开发的实时日志收集系统

2、flume一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(比如文本、HDFS、Hbase等)的能力 。

3、flume的数据流由事件(Event)贯穿始终。事件是Flume的基本数据单位,它携带日志数据(字节数组形式)并且携带有头信息,这些Event由Agent外部的Source生成,当Source捕获事件后会进行特定的格式化,然后Source会把事件推入(单个或多个)Channel中。你可以把Channel看作是一个缓冲区,它将保存事件直到Sink持久化该事件到日志或把事件推向另一个Source。

二、Flume 客户端

Client生产数据,运行在一个独立的线程,如:web服务器,应用系统

三、Flume Event

一个数据单元,消息头和消息体组成。(Events可以是日志记录、 avro 对象等。)

四、Flume Flow

Event从源点到达目的点的迁移的抽象

五、Flume Agent 

一个独立的Flume进程,包含组件Source、 Channel、 Sink。(Agent使用JVM 运行Flume。每台机器运行一个agent,但是可以在一个agent中包含多个sources和sinks。)

六、Flume Source插件

1、数据收集组件。(source从Client收集数据,传递给Channel)

2、source的exec配置

agent1.sources.exec-source1.channels = ch1

agent1.sources.exec-source1.type = exec

agent1.sources.exec-source1.command=tail -F /usr/local/hadoop/logs/hadoop-root-namenode-node10.log

3、source的spool配置

agent1.sources.spooldir-source1.channels = ch1 ch2

agent1.sources.spooldir-source1.type = spooldir

agent1.sources.spooldir-source1.spoolDir=/usr/local/flume/tmpData

agent1.sources.spooldir-source1.basenameHeader = true

4、source的avro配置

agent1.sources.avro-source1.channels = ch1

agent1.sources.avro-source1.type = avro

agent1.sources.avro-source1.bind = 0.0.0.0

agent1.sources.avro-source1.port = 41414

七、Flume channel插件

1、中转Event的一个临时存储,保存由Source组件传递过来的Event。(Channel连接 sources 和 sinks ,这个有点像一个队列。)

八、Flume 的sink插件

1、从Channel中读取并移除Event, 将Event持久化到外部存储或传递到FlowPipeline中的下一个Agent(如果有的话)(Sink从Channel收集数据,运行在一个独立线程。)

2、sink到log的配置

agent1.sinks.log-sink1.channel = ch1

agent1.sinks.log-sink1.type = logger

3、sink到kafka的配置

#设置Kafka接收器

agent1.sinks.k2.type= org.apache.flume.sink.kafka.KafkaSink

#设置Kafka的broker地址和端口号

agent1.sinks.k2.brokerList=node10:9092,node11:9092,node12:9092

agent1.sinks.k2.metadata.broker.list=node10:9092,node11:9092,node12:9092

agent1.sinks.k2.producer.type=sync

#设置Kafka的Topic

agent1.sinks.k2.kafka.topic=TestTopic2

#设置序列化方式

agent1.sinks.k2.serializer.class=kafka.serializer.StringEncoder

agent1.sinks.k2.channel=ch1

4、sink的avro配置

agent1.sinks.avro-sink1.channel = ch1

agent1.sinks.avro-sink1.type = avro

agent1.sinks.avro-sink1.hostname=node10

agent1.sinks.avro-sink1.port=41414

九、Flume拦截器

1、需要对数据进行过滤时,需要谁有Flume拦截器

2、拦截器的位置在Source和Channel之间,当我们为Source指定拦截器后,我们在拦截器中会得到event,根据需求我们可以对event进行保留还是抛弃,抛弃的数据不会进入Channel中

3、Flume数据流

十、一个source对应多个channel和多个sink的配置

channel的配置

agent1.channels.ch1.type = memory

agent1.channels.ch2.type = memory

source的配置

agent1.sources.spooldir-source1.channels = ch1 ch2

agent1.sources.spooldir-source1.type = spooldir

agent1.sources.spooldir-source1.spoolDir=/usr/local/flume/tmpData

agent1.sources.spooldir-source1.basenameHeader = true

sink的配置

# 激活各个组件,同类型的组件以空格分开

agent1.channels = ch1 ch2

agent1.sources = spooldir-source1

agent1.sinks = hdfs-sink1 k2

相关文章:

Flume的概念和原理

一、Flume的概念 1、flume 作为 cloudera 开发的实时日志收集系统 2、flume一个分布式、可靠、和高可用的海量日志采集、聚合和传输的系统。支持在日志系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种…...

初始nginx

华子目录 nginx介绍nginx功能介绍基础特性web服务相关功能nginx进程结构web请求处理机制 nginx进程间通信nginx启动与http连接建立http处理过程 nginx模块介绍nginx命令演示 nginx介绍 nginx是免费的、开源的、高性能的HTTP和反向代理服务器、邮件代理服务器、以及TCP/UDP代理服…...

vulnhub靶场 Empire LupinOne

使用命令查看靶机ip,访问ip arp-scan -l 使用御剑扫描一下子域名,但是没有获取到什么有用的信息 这是一个Apache文档,没有什么用 紧接着我们尝试暴力破解,这里推荐使用ffuf工具暴力破解目录,kali自带的ffuf扫描速度贼快 参数解释…...

6-Gin 路由详解 --[Gin 框架入门精讲与实战案例]

Gin 是一个用 Go 语言编写的 HTTP Web 框架,以其高性能和简洁的 API 而闻名。它提供了一套强大的路由功能,使得开发者可以轻松地定义 URL 路由规则,并将这些规则映射到具体的处理函数(handler)。以下是关于 Gin 路由的…...

使用Lodash工具库的orderby和sortby进行排序的区别

简介 _.orderBy 和 _.sortBy 是 Lodash 库中用于排序数组的两个函数。 区别 _.orderBy 允许你指定一个或多个属性来排序,并为每个属性指定排序方向(升序或降序)。默认所有值为升序排,指定为"desc" 降序&#xff0c…...

CSS面试题|[2024-12-24]

1.说一下CSS的盒模型 在HTML页面中的所有元素都可以看成是一个盒子 盒子的组成:内容content、内边距padding、边框border、外边距margin 盒模型的类型: 标准盒模型 margin border padding content IE盒模型 margin content(包括border p…...

flask-admin 在modelview 视图中重写on_model_change 与after_model_change

背景: 当我们在使用flask-admin进行WEB开发时应该第一时间想到的是竟可能使用框架推荐的modelView模型,其次才是自定义模型 baseview,因为只有modelview模型下开发才能最大限度的提高效率。 制作: 1、在modelview视图下框架会通过默认视图…...

Excel粘贴复制不完整的原因以及解决方法

在数据处理和分析的过程中,Excel无疑是不可或缺的工具。然而,在使用Excel进行复制粘贴操作时,有时会遇到粘贴不完整的情况,这可能会让人感到困惑和烦恼。本文将深入探讨Excel粘贴复制不完整的原因、提供解决方案,并给出…...

【深度学习环境】NVIDIA Driver、Cuda和Pytorch(centos9机器,要用到显示器)

文章目录 一 、Anaconda install二、 NIVIDIA driver install三、 Cuda install四、Pytorch install 一 、Anaconda install Step 1 Go to the official website: https://www.anaconda.com/download Input your email and submit. Step 2 Select your version, and click i…...

Cocos Creator 3.8.5 正式发布,更小更快更多平台!

在 Cocos Creator 3.8.5 版本中,我们做了新一轮的优化。 在加载速度、代码裁剪、平台增强等多方面做了优化,提升了开发者体验和游戏性能。 希望能够助 Cocos 开发者们的产品更上一层楼。 一、加载速度优化 1、WASM 模块延迟加载 在早期版本中&#xff0c…...

Python中构建终端应用界面利器——Blessed模块

在现代开发中,命令行应用已经不再仅仅是一个简单的文本输入输出工具。随着需求的复杂化和用户体验的重视,终端界面也逐渐成为一个不可忽视的设计环节。 如果你曾经尝试过开发终端UI,可能对传统的 print() 或者 input() 函数感到不满足&#…...

Android 15 状态栏闹钟图标不显示问题修复

Android 15 状态栏闹钟图标不显示问题修复 问题描述 在 Android 15 系统中,发现即使设置了闹钟,状态栏也不会显示闹钟图标。这个问题影响了用户及时查看闹钟状态的体验。 问题分析 通过查看 SystemUI 的配置文件,发现在 frameworks/base/packages/SystemUI/res/values/conf…...

数据采集背后的效率革命:如何优化你的爬虫性能

在爬虫技术日益发展的今天,性能优化成为提升数据采集效率的关键。面对日益复杂的网页结构和庞大的数据量,高效的爬虫能够显著降低运行时间和资源成本。本文将围绕爬虫性能优化的核心方法展开讨论,并通过实例对比多进程、多线程以及普通爬取的…...

【Compose multiplatform教程06】用IDEA编译Compose Multiplatform常见问题

当我们从Kotlin Multiplatform Wizard | JetBrains 下载ComposeMultiplatform项目时 会遇到无法正常编译/运行的情况,一般网页和桌面是可以正常编译的, 我这里着重解决如下问题 1:Gradle版本不兼容或者Gradle连接超时 2:JDK版本不兼容 3:Gradle依赖库连…...

《计算机组成及汇编语言原理》阅读笔记:p128-p132

《计算机组成及汇编语言原理》学习第 10 天,p128-p132 总结,总计 5 页。 一、技术总结 1.8088 organization and architecture 8088处理器是16位电脑,寄存器是16位,数据总线(data bus)是8位,地址总线是20位。 (1)g…...

使用 OpenCV 在图像中添加文字

在图像处理任务中,我们经常需要将文本添加到图像中。OpenCV 提供了 cv2.putText() 函数,可以很方便地在图像上绘制文本,支持多种字体、颜色、大小和位置等参数。 本文将详细介绍如何使用 OpenCV 在图像中添加文字,介绍 cv2.putTe…...

实现某海外大型车企(T)Cabin Wi-Fi 需求的概述 - 4

大家好,我是Q,邮箱:1042484520qq.com。 今天我们在上几讲的基础上再扩展下 Cabin Wi-Fi 的功能需求,讲讲如何使能 5G TCU Wi-Fi STA Bridge 模式。 参考: 实现某海外大型车企(T)Cabin Wi-Fi 需求…...

Linux系统:内核态与用户态的深层思考

背景: 我们学习Linux的系统调用经常会遇到一个概念:“内核态和用户态的切换”,一般人只会告诉你说这个切换代价很大,具体是什么情况?为什么需要切换?一定需要切换吗?怎么就会触发切换&#xff1…...

# 光速上手 - JPA 原生 sql DTO 投影

前言 使用 JPA 时,我们一般通过 Entity 进行实体类映射,从数据库中查询出对象。然而,在实际开发中,有时需要自定义查询结果并将其直接映射到 DTO,而不是实体类。这种需求可以通过 JPA 原生 SQL 查询和 DTO 投影 来实现…...

ASP.NET Web应用程序出现Maximum request length exceeded报错

一、问题描述 在ASP.NET的web应用中,导出数据时出现500 - Internal server error.Maximum request length exceeded。 二、原因分析 这个错误通常出现在Web应用程序中,表示客户端发送的HTTP请求的长度超过了服务器配置的最大请求长度限制。这可能是因为…...

Jimeng AI Studio(Z-Image Edition)与Python爬虫数据结合:自动化图像生成实战

Jimeng AI Studio(Z-Image Edition)与Python爬虫数据结合:自动化图像生成实战 1. 引言 你有没有遇到过这样的情况:每天需要为大量新闻资讯、产品信息或社交媒体内容配图,但手动设计耗时耗力,外包成本又太…...

新手友好:黑丝空姐-造相Z-Turbo镜像的详细操作步骤

新手友好:黑丝空姐-造相Z-Turbo镜像的详细操作步骤 你是不是对AI生成图片很感兴趣,特别是想试试那些能生成特定风格图片的模型?今天要介绍的这个“黑丝空姐-造相Z-Turbo”镜像,就是一个专门用于生成黑丝空姐风格图片的AI模型服务…...

OpenClaw安全方案:Phi-3-vision本地处理敏感图文数据实践

OpenClaw安全方案:Phi-3-vision本地处理敏感图文数据实践 1. 为什么需要本地化处理敏感数据 去年我参与了一个医疗数据整理项目,团队需要从数千份病历扫描件中提取关键指标。最初尝试使用某知名云服务商的OCR文本分析API,却在法务审核阶段被…...

OpenClaw+百川2-13B量化模型:个人知识库自动整理实战指南

OpenClaw百川2-13B量化模型:个人知识库自动整理实战指南 1. 为什么需要自动化知识管理 作为一名独立研究者,我常年被两个问题困扰:一是收集的文献资料散落在不同文件夹,每次找文件都要经历"考古式搜索";二…...

Globby最佳实践:避免常见陷阱的7个技巧

Globby最佳实践:避免常见陷阱的7个技巧 【免费下载链接】globby User-friendly glob matching 项目地址: https://gitcode.com/gh_mirrors/gl/globby Globby是一个基于fast-glob构建的用户友好的glob匹配库,它为Node.js开发者提供了强大的文件匹配…...

OpenClaw技能开发入门:为Qwen2.5-VL-7B定制图文处理模块

OpenClaw技能开发入门:为Qwen2.5-VL-7B定制图文处理模块 1. 为什么需要定制技能? 去年夏天,我遇到一个头疼的问题:每天需要处理大量产品截图和说明文档的匹配工作。手动核对图片与文字描述是否一致,不仅耗时还容易出…...

强化学习(3)--最优状态价值最优策略

说明:本系列文章是我在学习了西湖大学赵世钰老师的《Mathematical Foundations of Reinforcement Learning》一书后的学习笔记,在B站上有赵老师的完整课程视频。 课程视频链接 PDF教材链接 本文代码链接 一、最优状态价值和最优策略 定义&#xff1a…...

2026年高性价比降AI工具:SpeedAI降AIGC率稳过审

2026年AIGC工具已经全面融入各类内容创作场景,降AI率、降AIGC率不再是学术圈的小众需求,更是论文写作、商业文案产出、自媒体内容创作、正式文稿发表等场景的核心刚需。现在市面上降AI工具种类繁多,但真正能做到效果稳定、不改动核心内容、操…...

别再傻傻翻文档了!用这个API一键获取Prometheus里所有监控指标(附Node Exporter实战清单)

高效掌握Prometheus监控指标的实战指南 当你第一次登录到公司的Prometheus监控系统,面对成千上万的指标名称,是否感到无从下手?作为运维工程师,我们经常需要在短时间内理解一个全新系统的监控状况,而直接翻阅Exporter…...

别再手动画甘特图了!3分钟学会用Excel条件格式自动生成(含节假日设置技巧)

别再手动画甘特图了!3分钟学会用Excel条件格式自动生成(含节假日设置技巧) 项目管理中,甘特图是展示任务进度和时间安排的重要工具。传统手动绘制甘特图不仅耗时耗力,而且难以应对频繁的日期调整。今天,我将…...