Flume
2023-06-07 13:56:26 0 举报
AI智能生成
Flume
作者其他创作
大纲/内容
进阶
Flume事务
put事务
source采集数据,开启事务
doput方法将事件,装载到putList里面
docommit方法,提交事务,检测channel是否具有足够的空间存放事件
有
put
开启新的传输事务
没有
抛异常
source捕获异常
上游数据源
支持回溯
从新传输
数据不会丢失
不支持回溯
传输新的数据
数据会丢失
事务回滚
putList清空
take事务
Sink 获取channel对象,由channel对象获取事务,
开启事务, 不断轮询channel获取新的事件
dotake 把事件装在到takeList当中
docommit提交事务
Sink将数据向外部系统写出
外部系统
支持事务机制
不会产生数据的重复
不支持数据
会产生数据的重复
内部原理
channel Seletor
复制和多路复用
Replicating channel Selector
复制
Multiplexing channel Selector
多路复用
SinkProcessor
故障转移和负载均衡
DefaultSinkProcessor
只支持一个Sink
LoadbalanceSinkProcessor
负载均衡
failoverSinkProcessor
故障转移
定义
基本定义:
海量日志的采集框架
特性
高可用
高可靠
分布式
功能
采集
聚合
传输
架构
架构图
Agent
是flume的部署单元
JVM进程
Source、channel、Sink
Source
功能
采集数据到flume内部
包装数据为Event
将数据put到channel
获取channelprocessor对象,由channelprocessor对象开启事务
类型
avro Source
多用于构成复杂flume拓扑结构
配合avro Sink使用
exec Source
可执行Unix命令
配合tail -F /test.log命令,可实现对一个可追加文件进行实时采集
spoolDir Source
采集目录下的多个新文件
一定时间间隔,遍历目录,获取新文件
对于新文件,读取内容,进行传输,并重命名源文件,添加尾缀,与新文件进行区分。
netcat Source
本质是linx下的端口相关的工具
采集端口数据
TAILDIR Source
采集多个目录下多个可追加文件
断点续传
json文件存储可追加文件的数据更新位置
Sink
功能
Sink不断的轮询channel当中的事件,并批量的移除他们
Sink获取channel对象后,根据channel对象获得的事务对象
sink将采集来的数据,传输到指定的外部系统
hdfs Sink
向HDFS分布式文件系统传输数据
logger Sink
用于测试环境
将事件中的数据,包装为flume框架的日志,再配合参数 -Dflume.root.logger=INFO,console,就可以将数据数据到控制台
avro Sink
配合avro Source实现Agent连接
file Sink
HBase Sink
Channel
功能
位于Source合Sink之间的一个缓冲区
可以使得Source和Sink两个线程运行在不同的速率之上
线程安全的,可以支持多个Source的写入和多个Sink的读取
类型
memory Channel
快
不安全
file Channel
安全
慢
0 条评论
下一页