自定义HBaseSink序列化器

标签(空格分隔): Flume


1 HBaseSink序列化器介绍

要说序列化要先从HBaseSink说起,因为Serializer是为Sink服务的,为了从Sink中解耦出序列化的功能从而抽象出一个HbaseEventSerializer的接口,实现对HBase Put等操作的组装。

1.1 Serializer配置及初始化

具体怎么实现的呢?请看以下HBaseSink的代码片段
Flume自定义HBaseSink序列化器 - 图1

在HBaseSink初始化配置时会初始化eventSerializerType这个变量,而这个变量取的是serializer这个配置项

Flume自定义HBaseSink序列化器 - 图2

eventSerializerType是允许为空的,如果为空时默认为org.apache.flume.sink.hbase.SimpleHbaseEventSerializer,这在官方文档中也可以验证。
Flume自定义HBaseSink序列化器 - 图3

1.2 Serializer执行

Flume自定义HBaseSink序列化器 - 图4

在HBaseSink process方法中会调用HbaseEventSerializer接口的

2 SimpleHbaseEventSerializer

3 RegexHbaseEventSerializer

3 业务背景

4 自定义Serializer