Flume组成,Put事务,Take事务
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阶段
(4)kafka channel哪个版本产生的?
flume1.6 版本产生=》并没有火;因为有bug
topic-start 数据内容
topic-event 数据内容 ture 和false 很遗憾,都不起作用。
增加了额外清洗的工作量。
flume1.7解决了这个问题,开始火了。
(5)生产环境如何选择
如果下一级是kafka,优先选择kafka channel
如果是金融、对钱要求准确的公司,选择file channel
如果就是普通的日志,通常可以选择memory channel
每天丢几百万数据 pb级 亿万富翁,掉1块钱会捡?
3)HDFS sink
(1)时间(1小时-2小时) or 大小128m、event个数(0禁止)
具体参数:hdfs.rollInterval=3600,hdfs.rollSize=134217728,hdfs.rollCount =0
4)事务
Source到Channel是Put事务
Channel到Sink是Take事务