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