Flume学习笔记之初识(二)
来源:互联网 发布:国家数据统计数据库 编辑:程序博客网 时间:2024/06/08 03:14
三、flume数据流
一个source可以有多个channel,
但一个sink只能有一个channel
source、channel、sink均需要设定一个type属性,来表示组件的类型。 可配置内置的type名称,如netcat、memory、hdfs
(详见SourceType.java、ChannelType.java、SinkType.java)
或配置自定义类名,如org.apache.flume.source.scribe.ScribeSource、org.apache.flume.channel.kafka.KafkaChannel等
1 single flow
2 multiple flow
3 multi agent flow
两个agent可以通过avro数据传输格式连接:
图:agent1的sink与agent2的source需采用avro/thrift对接
4 fan out flow
方式1:replicating 一个event将发送至所有的channel
方式2:multiplexing 一个event根据header进行mapping, 发送至相应的channel;匹配不到的发送 至default对应的channel
举例:
fan out flow - multiplexing例子
channel分为两种:
(1) required channel:若未能全部写入成功,则transaction失败。如果没有mapping成功,则写入default channel ,default channel 采用 required channel 的 机制。
(2) optional channel : 若未能写入成功,则被忽略,transaction不会失败
详见源码:
MultiplexingChannelSelector.java
ChannelProcessor.java
从ChannelProcessor.java源码中,可以看出,events在写入channel前,会先经过interceptor chain
进行处理,可以修改或丢弃event 。
5 Interceptor
type可为alias或类名,参考InterceptorType.java
内置Interceptor:timestamp、host、static、uuid、regex_filter、
regex_extractor
自定义Interceptor:实现Interceptor接口,参考TimestampInterceptor.java
- Flume学习笔记之初识(二)
- Flume学习笔记之初识(一)
- Flume学习笔记之初识(三)
- Flume学习笔记(二)问题整理
- struts2 学习笔记之二(初识servlet)
- hibernate学习笔记之二(初识hibernate)
- flume学习(二)
- hadoop学习笔记之flume
- struts2学习笔记(二) 初识Struts2
- struts2学习笔记(二) 初识Struts2
- Flume NG 学习笔记(二)单机与集群Flume 配置
- Flume笔记二之source,channel,sink
- IoT-Camera学习笔记之初识IoT-Camera(二)
- flume学习之二 flume安装和使用方法
- Hadoop之Flume框架学习(笔记20)
- RxJava学习笔记之初识(一)
- Flume学习笔记 --- Flume入门
- Spark学习笔记之初识
- 代理post跨域请求
- Hadoop--map-reduce原理
- MySQL ERROR 1025(HY000): Error on rename of ...
- public/private/protected浅显易懂
- rm命令改写
- Flume学习笔记之初识(二)
- 解决 Code::Blocks之It seems that this file has not been built yet.
- vuejs使用指南(一)
- 自动远程拷贝expect脚本
- 约瑟夫环问题
- tomcat服务器启动不起来
- Trafodion Bulk Load 初试
- Cocoa pods的安装使用以及过程中可能会遇到问题的汇总
- 详细的K-means聚类