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