一、Flume 组成、Put 事务、Take 事务
Taildir Source:断点续传、多目录。Flume1.6 以前需要自己自定义 Source 记录每次读取文件位置,实现断点续传。
File Channel:数据存储在磁盘,宕机数据可以保存。但是传输速率慢。适合对数据传输可靠性要求高的场景,比如,金融行业。
Memory Channel:数据存储在内存中,宕机数据丢失。传输速率快。适合对数据传输可靠性要求不高的场景,比如,普通的日志数据。
Kafka Channel:减少了 Flume 的 Sink 阶段,提高了传输效率。
Source 到 Channel 是 Put 事务
Channel 到 Sink 是 Take 事务
二、自定义拦截器步骤
1、实现 Interceptor
2、重写四个方法
(1) initialize 初始化
(2) public Event intercept(Event evrnt) 处理单个 Event
(3) public List intercept(List events) 处理多个 Event,在这个
方法中调用 Event intercept(Event event)
(4) close 方法
3、静态内部类,实现 Interceptor.Builder