一种基于Flume的解析半结构化文本文件的数据的方法与流程

文档序号:12271479阅读:来源:国知局

技术特征:

1.一种基于Flume的解析半结构化文本文件的数据的方法,其特征在于:所述方法采用Flume的spooldir采集文件数据时,根据业务规则读取一条业务数据,对每条业务数据进行解析转换,通过新建Flume事件序列化类,实现Flume接口EventDeserializer,在该类中按照Flume的conf文件配置的规则读取半结构化文本文件的每条数据,针对每条数据,再按照Flume的conf文件配置的数据解析规则类进行解析转换,最终输出符合业务需要的一条数据。

2.根据权利要求1所述的一种基于Flume的解析半结构化文本文件的数据的方法,其特征在于,所述方法操作步骤如下:

1)自定义接口IBdeEventParser;

2)根据业务数据的规则,自定义文本文件解析类,实现自定义接口IBdeEventParser;

3)新建Flume事件序列化类BdeLineDeserializer,实现Flume接口EventDeserializer。

3.根据权利要求2所述的一种基于Flume的解析半结构化文本文件的数据的方法,其特征在于,所述接口IBdeEventParser描述如下:

public interface IBdeEventParser {

public void build(Context context);

public Event handleEvent(Event event);

}

其中build(Context context):用于从Flume的上下文Context中获取Flume的conf文件配置的解析规则;

handleEvent(Event event):用于根据Flume的conf文件配置的解析规则对Flume的每条数据进行解析转换。

4.根据权利要求2所述的一种基于Flume的解析半结构化文本文件的数据的方法,其特征在于,构造BdeLineDeserializer(Context context, ResettableInputStream in)过程如下:

1)读取Flume的conf文件中配置的文本文件解析类,配置eventParser项,值为自定义接口IBdeEventParser的一个实现类;

2)实例化eventParser配置的解析类,并调用方法build(Context context)进行初始化;

3)在readEvents(int numEvents)中,调用readEvent()获取一个Flume事件,若Flume配置了文本文件解析类则调用文本文件解析类的方法handleEvent(Event event),对每条数据进行解析转换;Flume没有配置文本文件解析类则不解析;

4)在readEvent()中,读取Flume的conf文件中配置的一条记录的正则表达式,配置项为filePattern,若配置了正则表达式则按照正则表达式读取一条记录;若没有配置正则表达式则读取一行作为一条记录,其中一条记录序列化为一个Flume事件Event。

当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1