Flume学习笔记
视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/
定义
Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。
Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。
官网:https://flume.apache.org/releases/content/1.9.0/FlumeUserGuide.html
源码包:https://gitee.com/apache/flume.git
架构图

1.Agent
Agent主要有3个部分组成,Source、Channel、Sink
2.Source
Source是负责接收数据到Flume Agent的组件。Source 组件可以处理各种类型、各种格式的日志数据,包括 avro、thrift、exec、jms、spooling directory、netcat、taildir、sequence generator、syslog、http、legacy。
3.Sink
Sink 不断地轮询Channel中的事件且批量地移除它们,并将这些事件批量写入到存储或索引系统、或者被发送到另一个Flume Agent。
Sink 组件目的地包括hdfs、logger、avro、thrift、ipc、file、HBase、solr、自定义。
4.Channel
Channel是位于Source 和Sink之间的缓冲区。因此,Channel允许Source 和Sink 运作在不同的速率上。Channel是线程安全的,可以同时处理几个Source的写入操作和几个
Sink 的读取操作。←Flume自带两种Channel:MemoryChannel和File Channel。Memory Channel是内存中的队列。Memory Channel在不需要关心数据丢失的情景下适用。如果需要关心数据丢失,那么MemoryChanne1就不应该使用,因为程序死亡、机器宕机或者重启都会导致数据丢失。←
FileChannel将所有事件写到磁盘。因此在程序关闭或机器宕机的情况下不会丢失数据。
5.Event
传输单元,Flume数据传输的基本单元,以vent的形式将数据从源头送至目的地。Event 由Header 和 Body 两部分组成,Header 用来存放该event 的一些属性,为K-V结构,Body用来存放该条数据,形式为字节数组。
示例
官方文档

1.配置文件
# example.conf: A single-node Flume configuration# Name the components on this agent
a1.sources = r1
a1.sinks = k1
a1.channels = c1
# Describe/configure the source
a1.sources.r1.type = netcat
a1.sources.r1.bind = localhost
a1.sources.r1.port = 44444
# Describe the sink
a1.sinks.k1.type = logger
# Use a channel which buffers events in memory
a1.channels.c1.type = memory
a1.channels.c1.capacity = 1000
a1.channels.c1.transactionCapacity = 100
# Bind the source and sink to the channel
a1.sources.r1.channels = c1
a1.sinks.k1.channel = c1
- 可以配置多个source、sink、channel
- 事务容量要比总容量小,事务容量指单次最大的事件数量
- 一个source可以绑定多个channel
- 一个sink只能绑定一个channel
- 一个channel可以绑定多个sink
2.启动命令
bin/flume-ng agent -n a1 -c conf -f conf/flume-conf
- -n --name : agent名称
- -c --conf: conf目录
- -f --conf-file: 配置文件
- -Dflume.root.logger=INFO,console 打印日志
3.Agent
3.1.内部原理

3.1.1.Channel Selectors
3.1.1.1.ReplicatingChannel Selector
(默认)将source过来的events发往所有channel

示例

3.1.1.2.MultiplexingChannel Selector
可以配置发往哪些Chanmel

示例

3.1.2.SinkProcessor
3.1.2.1.DefaultSinkProcessor
只接收一个请求,只能绑定一个Sink
3.1.2.2.LoadBalanceingSinkProcessor
负载均衡,分散到其他sink中
示例

3.1.2.3.FailoverSinkProcessor
故障转移,按优先级排序

示例

4.Source
4.1.exec

4.1.1.示例
监控文件内容

4.1.2.缺点
不能断点续传
4.2.spooldir

4.2.1.示例
监控目录中新文件

4.2.2.缺点
不能动态监听变化文件
4.3.Taildir

4.3.1.示例

4.3.2.优点
1.监控不同目录
2.
4.4.Avro

4.4.1.示例

4.4.2.缺点
5.Sink
5.1.HDFS


5.1.1.示例

5.2.Avro

5.2.1.示例

5.3.FileRoll

5.3.1.示例

6.修改源码
下载源码:https://gitee.com/apache/flume.git
Flume拓扑结构
1.简单串联
1.1.结构图

1.2.示例
2.复制和多路利用
2.1.结构图

2.2.示例
2.2.1.单数据源多出口案例
2.2.1.1.需求

2.2.1.2.flume-file-flume.conf
# Name the comnentson this agent
a1.sources=r1
a1.channels=c1
a1.sinks = k1 k2#Describe/configure the source
a1.sources.r1.type =exec
a1.sources.r1.command=tail -F /opt/module/hive/logs/hive.log
a1.sources.r1.shell= /bin/bash -c#Describe the sink
a1.sinks.kl.type =avro
a1.sinks.k1.hostname =hadoop102
a1.sinks.k1.port =4141a1.sinks.k2.type =avro
a1.sinks.k2.hostname =hadoop102
a1.sinks.k2.port =4142#Describe the channe
a1.channels.c1.type=memory
al.channels.c1.capacity=1000
a1.channels.c1.transactionCapacity=100#将数据流复制给所有channele
a1.sources.r1.selector.type=relicating# Bind the source and sink to the channel
a1.sources.r1.channels=c1 c2
al.sinks.k1.channel=c1
a1.sinks.k2.相关文章:
Flume学习笔记
视频地址:https://www.bilibili.com/video/BV1wf4y1G7EQ/ 定义 Flume是一个高可用的、高可靠的、分布式的海量日志采集、聚合和传输的系统。 Flume高最要的作用就是实时读取服务器本地磁盘的数据,将数据写入HDFS。 官网:https://flume.apache.org/releases/content/1.9.0/…...
数据库系统概论(超详解!!!) 第三节 关系数据库标准语言SQL(Ⅳ)
1.集合查询 集合操作的种类 并操作UNION 交操作INTERSECT 差操作EXCEPT 参加集合操作的各查询结果的列数必须相同;对应项的数据类型也必须相同 查询计算机科学系的学生及年龄不大于19岁的学生。SELECT *FROM StudentWHERE Sdept CSUNIONSELECT *FROM StudentWHERE Sage&l…...
与谷歌“分家”两年后,SandboxAQ推出统一加密管理平台
3月27日,SandboxAQ宣布其AQtive Guard平台现已全面可用(GA),适用于所有行业,以防范人工智能驱动和量子攻击的威胁。前者是在两年前3月从谷歌母公司Alphabet分拆出来的初创公司,并在当时获得了“九位数”的融…...
【卫星家族】 | 高分六号卫星影像及获取
1. 卫星简介 高分六号卫星(GF-6)于2018年6月2日在酒泉卫星发射中心成功发射,是高分专项中的一颗低轨光学遥感卫星,也是我国首颗精准农业观测的高分卫星,具有高分辨率、宽覆盖、高质量成像、高效能成像、国产化率高等特…...
XML与Xpath
XML与Xpath XML是一种具有某种层次结构的文件,Xpath则是解析这种文件的工具 接下来将会解释XML文件的结构和Xpath的基本使用,并且用Java语言进行操作展示。 XML结构 XML(可扩展标记语言)文件具有一种层次结构,由标签…...
【c++20】CPP-20-STL-Cookbook 学习笔记
Cpp20-STL-Cookbook-src简单的阅读笔记。c++20更好用了,比如STL 包含了一些这样的辅助函数,比如 make_pair() 和make_tuple() 等。 这些代码现在已经过时了,但是为了与旧代码兼容,会保留这些代码。比如 可以声明是一个std的string:Sum s1 {1u, 2.0, 3, 4.0f }?...
Python 之 Flask 框架学习
毕业那会使用过这个轻量级的框架,最近再来回看一下,依赖相关的就不多说了,直接从例子开始。下面示例中的 html 模板,千万记得要放到 templates 目录下。 Flask基础示例 hello world from flask import Flask, jsonify, url_fora…...
精品丨PowerBI负载测试和容量规划
当选择Power BI作为业务报表平台时,如何判断许可证的选择是否符合业务需求,价格占了主导因素。 Power BI的定价是基于SKU和服务器内核决定的,但是很多IT的负责人都不确定自己公司业务具体需要多少。 不幸的是,Power BI的容量和预期…...
【算法-PID】
算法-PID ■ PID■ 闭环原理■ PID 控制流程■ PID 比例环节(Proportion)■ PID 积分环节(Integral)■ PID 微分环节(Differential) ■ 位置式PID,增量式PID介绍■ 位置式 PID 公式■ 增量式 PI…...
ros rosbag使用记录
rosbag: 1. rosbag record -a 记录当前所有消息(较少用)2. rosbag record -O bag_name.bag /topic 记录指定消息3. rosbag info 查阅bag文件信息4. rosbag play 播放bag文件内容5. python script 查看bag文件内容参考: 1. rosbag record -a 记…...
WebKit结构揭秘:探秘网页渲染的魔法之源
一、WebKit之心:渲染引擎的魔力 WebKit的渲染引擎是其核心所在,它犹如一位技艺高超的魔法师,将HTML、CSS和JavaScript的魔法咒语转化为绚丽的网页画面。它解析代码,绘制页面,让网页内容跃然屏上,展现出无尽…...
VSCode美化
今天有空收拾了一下VSCode,页面如下,个人觉得还是挺好看的~~ 1. 主题 Noctis 色彩较多,有种繁杂美。 我使用的是浅色主题的一款Noctis Hibernus 2. 字体 Maple Mono 官网:Maple-Font 我只安装了下图两个字体,使…...
Runes 生态一周要览 ▣ 2024.3.25-3.31|Runes 协议更新 BTC 减半在即
Runes 生态大事摘要 1、Casey 发布了 Runes 协议文档 RUNES HAVE DOCS,Github 代码库更新到 ord 0.17.0 版本,Casey 表示符文是一个“严肃”的代币协议。 2、Casey 公布了第一个硬编码的创世符文「UNCOMMONGOODS」 3、4月7日香港沙龙|聚焦「…...
瘦身Spring Boot应用(thinJar)
瘦身Spring Boot应用(thinJar) 简介 我们使用Spring Boot提供的spring-boot-maven-plugin打包Spring Boot应用,可以直接获得一个完整的可运行的jar包,把它上传到服务器上再运行就极其方便。 但是这种方式也不是没有缺点。最大的缺点就是包太大了&…...
备战蓝桥杯---贪心刷题1
话不多说,直接看题: 本质是一个数学题: 我们令xi<0表示反方向传递,易得我们就是求每一个xi的绝对值之和min,我们令平均值为a爸。 易得约束条件: x1-x2a1-a,x2-x3a2-a..... 解得x1x1-0,x2x1-((n-1)*a-a2-...an)。…...
《数据结构学习笔记---第九篇》---循环队列的实现
文章目录 1.循环队列的定义 2.循环队列的判空判满 3.创建队列并初始化 4.入队和出队 5. 返回队尾队首元素 6.释放循环队列 1.循环队列的定义 定义:存储队列元素的表从逻辑上被视为一个环。 我们此次实现的循环队列,采用顺序表 typedef struct {int…...
前端调试工具之Chrome Elements、Network、Sources、TimeLine调试
常用的调试工具有Chrome浏览器的调试工具,火狐浏览器的Firebug插件调试工具,IE的开发人员工具等。它们的功能与使用方法大致相似。Chrome浏览器简洁快速,功能强大这里主要介绍Chrome浏览器的调试工具。 打开 Google Chrome 浏览器,…...
vue 加 websocket 聊天
<template><div style="height: 100%; width: 100%; background-color: #fff"><div class="wrap"><!-- 头部 --><div class="titleBox"><imgsrc="@/assets/image/avatar.png"style="argin: 10p…...
uniapp通过蓝牙传输数据 (ios)
在uni-app中,可以通过uni-ble(uni-app官方提供的蓝牙插件)来实现iOS设备上的蓝牙数据传输。 首先,确保已在uni-app的manifest.json文件中添加uni-ble插件的配置: "permission": { "scope.userLocati…...
docker搭建CI/CD环境配置过程中的常见问题
一、Jenkins 1、pull镜像问题 docker pull jenkins/jenkins:lts Using default tag: latest Trying to pull repository docker.io/library/centos ... Get https://registry-1.docker.io/v2/library/centos/manifests/latest: Get https://auth.docker.io/token?scoperepo…...
“枯笔”“泼墨”“留白”在Midjourney中根本不存在?——资深数字书画师拆解6个被长期误用的东方美学关键词
更多请点击: https://intelliparadigm.com 第一章:东方美学与AI绘图的本质断层 气韵生动与像素采样的不可通约性 东方绘画传统以“气韵生动”为最高准则,强调笔意流转、留白呼吸、时间性观照与心手相忘的即兴生成。而当前主流AI绘图模型&am…...
AI Agent开发实战:从核心范式到工程落地的完整指南
1. 项目概述:一场静悄悄的技术代际更迭最近和几个技术团队负责人聊天,话题总绕不开“AI Agent”。大家的感觉出奇地一致:这玩意儿的发展速度,快得有点让人喘不过气。新闻里、论文里、各种技术峰会上,关于智能体&#x…...
深度重构黑苹果系统架构:OpenCore实战解析与性能优化
深度重构黑苹果系统架构:OpenCore实战解析与性能优化 【免费下载链接】Hackintosh 国光的黑苹果安装教程:手把手教你配置 OpenCore 项目地址: https://gitcode.com/gh_mirrors/hac/Hackintosh 在传统PC硬件与macOS系统兼容性的技术探索中…...
别再死记硬背了!用MIDI键盘和DAW软件(如FL Studio/Cubase)5分钟搞懂钢琴音区划分
别再死记硬背了!用MIDI键盘和DAW软件5分钟搞懂钢琴音区划分 第一次打开DAW的钢琴卷帘窗时,那些密密麻麻的C3、C4编号是否让你一头雾水?作为从乐队吉他手转型音乐制作的过来人,我完全理解这种困惑。传统教材里"小字组"&q…...
现代React Native开发:从Expo生态到Redux状态管理的工程实践
1. 项目概述:一个为现代React Native开发量身定制的生产力引擎 如果你和我一样,在过去几年里用React Native做过几个项目,那你一定对项目初始化时那种重复、繁琐的“体力活”深有体会。每次新建一个项目,都要重新安装一堆依赖库&…...
惠来海康医院眼科母亲节:愿岁月温柔,护她眼底有光
惠来海康医院眼科母亲节:愿岁月温柔,护她眼底有光五月浅夏,暖意氤氲,当康乃馨的芬芳漫过街巷,母亲节便载着满心敬意如期而至。母亲,是岁月里最温柔的守望者,用一双眼眸,藏下对我们所…...
2023B卷,阿里巴巴找黄金宝箱(4)
👨⚕️ 主页: gis分享者 👨⚕️ 感谢各位大佬 点赞👍 收藏⭐ 留言📝 加关注✅! 👨⚕️ 收录于专栏:华为OD面试 文章目录 一、🍀前言 1.1 ☘️题目详情 1.2 ☘️参考解题答案 一、🍀前言 2023B卷,阿里巴巴找黄金宝箱(4)。 1.1 ☘️题目详情 题目:…...
IntelliNode:统一AI模型调用,加速Node.js智能应用开发
1. 项目概述:从IntelliNode到智能应用开发的新范式最近在开源社区里,一个名为“IntelliNode”的项目引起了我的注意,更具体地说,是它的核心库intelligentnode/Intelli。乍一看这个名字,你可能会联想到“智能节点”&…...
从OCP协议到3D寄生提取:EDA/IP技术演进与工程实践深度解析
1. 行业动态综述:从新闻简报到深度洞察每周追踪EDA(电子设计自动化)和IP(知识产权核)领域的动态,已经成了我从业十几年来的一个习惯。这不仅仅是看看新闻,更像是定期参加一场虚拟的行业技术交流…...
5分钟极简安装:免费Ghidra逆向工程工具完整配置指南
5分钟极简安装:免费Ghidra逆向工程工具完整配置指南 【免费下载链接】ghidra_installer Helper scripts to set up OpenJDK 11 and scale Ghidra for 4K on Ubuntu 18.04 / 18.10 项目地址: https://gitcode.com/gh_mirrors/gh/ghidra_installer 你是否曾因复…...
