1.taildir source
1.断点续传、多目录
2.哪个 Flume
版本产生的?
Apache1.7
、
CDH1.6
3.没有断点续传功能时怎么做的? 自定义
4.taildir 挂了怎么办? 不会丢数:断点续传
5.怎么处理重复数据?
不处理:生产环境通常不处理,出现重复的概率比较低。处理会影响传输效率。
处理
自身:在 taildirsource
里面增加自定义事务,影响效率
找兄弟:下一级处理(hive dwd sparkstreaming flink 布隆)、去重手段(groupby、开窗取 窗口第一条、redis
)
6.taildir source 是否支持递归遍历文件夹读取文件? 不支持。
自定义 递归遍历文件夹 +
读取文件
2.file channel /memory channel/kafka channel
1.File Channel
数据存储于磁盘,优势:可靠性高;劣势:传输速度低
默认容量:100
万
event
注意:FileChannel
可以通过配置
dataDirs
指向多个路径,每个路径对应不同的硬盘,增
大 Flume
吞吐量。
2.Memory Channel
数据存储于内存,优势:传输速度快;劣势:可靠性差
默认容量:100
个
event
3.Kafka Channel
数据存储于 Kafka
,基于磁盘;
优势:可靠性高;
传输速度快 Kafka Channel
大于
Memory Channel + Kafka Sink
原因省去了 Sink 阶段
Kafka Channel 哪个版本产生的?
Flume1.6 版本产生
=
》并没有火;因为有
bug event(header body )
ture 和
false
控制是否包含
header 信息,很遗憾,都不起作用。增加了额外清洗的工作量。
Flume1.7 解决了这个问题,开始火了。
生产环境如何选择
如果下一级是 Kafka
,优先选择
Kafka Channel
如果是金融、对钱要求准确的公司,选择 File Channel
如果就是普通的日志,通常可以选择 Memory Channel
每天丢几百万数据 pb 级
3.HDFS sink
1.时间(半个小时) or
大小
128m
、
event
个数(0 禁止)
具体参数:hdfs.rollInterval=1800
,
hdfs.rollSize=134217728
,
hdfs.rollCount =0
4.事务
Source 到
Channel
是
Put
事务
Channel 到
Sink
是
Take
事务