一种基于流式处理框架的大规模数据处理装置及方法与流程

文档序号:11177416阅读:430来源:国知局
一种基于流式处理框架的大规模数据处理装置及方法与流程

本发明涉及计算机技术领域,特别涉及一种基于流式处理框架的大规模数据处理装置及方法。



背景技术:

目前,大规模数据一般采用多线程单实例的处理方式,此方式通常运行在一台服务器上,对业务的针对性高,但相应的配置较少。随着数据爆发式的增长,传统的数据处理方式已经不能够满足大规模数据处理对于速度、性能的要求,主要缺陷如下:

1、由于单台服务器存在如网络稳定性差、cpu用量过高等性能瓶颈,因此,数据处理速度不够快,并且不能及时处理新增数据。

2、进行数据处理时,没有配置文件来干预处理过程,处理规则不能动态配置,一旦处理规则发生变化,需要重新启动程序。

3、一次运行中插入的语句(如sql)是固定的,不能动态修改,数据插入方式单一,不支持多种插入方式。

4、一次数据处理只能使用于一个业务场景,与具体业务的耦合性很高,独立性差,不方便迁移。

因此,亟需一种基于流式处理框架的大规模数据处理装置及方法。



技术实现要素:

发明的目的:为了解决背景技术中存在的技术问题,提供一种基于流式处理框架的大规模数据处理装置及方法。

为达到上述目的,本发明采用的技术方案是:提供了一种基于流式处理框架的大规模数据处理装置,包括:

拓扑构建模块,用于根据xml配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;

数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;

数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;

聚合模块,用于接收分流的处理结果并对其进行聚合,得到聚合结果;

存储模块,用于接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。

进一步地,所述数据源为消息中间件或持久化存储介质。

进一步地,所述消息中间件包括:用于缓存原始数据的kafka和用于缓存逻辑配置文件的redis,所述持久化存储介质包括:关系数据库mysql和索引solr。

进一步地,所述存储介质还包括:mongodb。

进一步地,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。

本发明还提供了一种基于流式处理框架的大规模数据处理方法,包括以下过程:

步骤1:拓扑构建模块根据xml配置文件构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;

步骤2:数据读取模块从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据并发送给数据处理模块;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;

步骤3:数据处理模块接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;

步骤4:聚合模块接收分流的处理结果并对其进行聚合,得到聚合结果并发送给存储模块;

步骤5:存储模块接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。

进一步地,所述数据源为消息中间件或持久化存储介质。

进一步地,所述消息中间件包括:用于缓存原始数据的kafka和用于缓存逻辑配置文件的redis,所述持久化存储介质包括:关系数据库mysql和索引solr。

进一步地,所述存储介质还包括:mongodb。

进一步地,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。

本发明的有益效果是:本发明基于storm、spark等流式处理框架,可以在多台服务器上部署集群,数据处理速度快,且能够及时处理新增数据;新增的处理规则在redis中配置即可动态调用,无须重启程序;采用的数据源能横向拓展,数据的插入方式多样;在不同场景下使用本发明只需要进行简单的配置修改即可使用,具有一定的应用前景。

附图说明

图1是本发明实施例1基于流式处理框架的大规模数据处理装置的结构框图。

图2是本发明实施例2基于流式处理框架的大规模数据处理方法的主要流程图。

具体实施方式

为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。

实施例1

环境准备:本实施例基于流式处理框架的大规模数据通用处理装置,依赖于流式处理框架,kafka和redis消息中间件,还有用于数据存储的介质,本次采用storm作为底层处理框架。在部署该装置前,需确保这些环境已经准备好。

配置准备:在构建拓扑时,加载xml配置文件以及redis中的storm相关配置,确定加载的模块和storm的运行参数(如:storm的work数和task数);在建立拓扑与数据源、存储介质的连接时,加载properties配置文件;在进行数据处理时,动态加载redis中的配置文件,实时修改运行的阈值(如:批量提交数据量大小、等待超时时间、数据处理规则等)。

参照图1,本实施例基于流式处理框架的大规模数据处理装置,包括:

拓扑构建模块,用于根据xml文件在storm上构建数据处理拓扑,并建立数据处理拓扑与数据源、所有存储介质的连接;该模块是后续几个模块运行的基础;

数据读取模块,用于从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据;所述数据源为消息中间件或持久化存储介质;所述消息中间件包括:用于缓存原始数据的kafka和用于缓存逻辑配置文件的redis,所述持久化存储介质包括:关系数据库mysql和索引solr;所述标记为自定义的用于区分处理方法的字段,可以是来源数据库的表名、来源网址等;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;

数据处理模块,用于接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法(如:在配置文件中配置了mongodb中student表中的数据对应的处理方法是parsestudent(),则该模块会动态调用该方法处理该条数据),生成处理结果并根据存储逻辑进行分流(如:需要插入同一个mysql表,且插入的字段相同的数据会被发送到同一个流);由于原始数据类型和解析要求的不确定,具体的处理逻辑需要自行编写,同时在逻辑配置文件中指定不同类型数据对应的不同的处理逻辑;所述存储逻辑内容包括:数据库实例、表名、插入方式和插入字段,前三者需要指定。

聚合模块,用于接收分流的处理结果,并将相同存储逻辑的处理结果聚合到同一个线程,对于有优先标记的数据,直接发送给存储模块,否则将数据缓存,直到满足配置的超时时间或数量再发送;

存储模块,用于按批次接收聚合结果,并根据存储逻辑将聚合结果存储(即插入)到指定的存储介质中;所述存储介质为关系数据库mysql、分布式文档存储数据库mongodb和索引solr。

本实施例基于流式处理框架的大规模数据处理装置,主要分为五大模块,通过storm的流机制将这些模块串联,形成一个完整的处理流程,在启动时加载一个全局的配置,该配置指定加载的模块、各个模块的线程数以及原始数据的来源。本装置具有以下优点:

(1)数据处理速度快。本装置基于storm、spark、samza或jstorm流式处理框架,可以在多台服务器上部署集群,能够加快处理速度,充分利用服务器性能,如需要增加处理速度只需要横向增加服务器资源。

(2)确保数据不会丢失。从kafka读取数据,确保数据至少被处理一次。

(3)可拓展性。数据源可以是消息中间件,或是持久化存储数据库等,都可以横向拓展,如存储介质,现有的为mysql和solr存储,还可以横向增加mongodb等数据库的插入。

(4)可动态加载处理逻辑。新增的处理逻辑只需要在redis中配置即可被动态调用到。

(5)可动态加载拓扑结构。处理数据的bolt通过xml的方式加载,在不同数据处理中可以选择性加载,减小服务器压力。

(6)采用数据聚合机制,使数据能够批量插入,减小网络开销。

(7)数据的整个处理流程都由配置文件决定,在不同的业务中,只需要修改配置文件就能满足处理需求。

实施例2

参照图2,本实施例基于流式处理框架的大规模数据处理方法,包括以下过程:

步骤1:拓扑构建模块根据xml配置文件在流式处理框架上构建数据处理拓扑,同时建立数据处理拓扑与数据源、存储介质的连接;

步骤2:数据读取模块从数据源读取带有标记的原始数据,并根据标记加载对应的逻辑配置文件,得到附加逻辑配置的数据并发送给数据处理模块;所述逻辑配置文件包含处理逻辑、处理方法和存储逻辑内容;

步骤3:数据处理模块接收附加逻辑配置的数据,并根据逻辑配置中的处理逻辑动态调用对应的处理方法,生成处理结果并根据存储逻辑进行分流;

步骤4:聚合模块接收分流的处理结果并对其进行聚合,得到聚合结果并发送给存储模块;

步骤5:存储模块接收聚合结果,并根据存储逻辑将聚合结果存储到指定的存储介质中。

优选的,所述数据源为消息中间件或持久化存储介质。

优选的,所述消息中间件包括:用于缓存原始数据的kafka和用于缓存逻辑配置文件的redis,所述持久化存储介质包括:关系数据库mysql、分布式文档存储数据库mongodb和索引solr。

优选的,所述存储逻辑包括:数据库实例、表名、插入方式和插入字段。

注意,上述内容仅为本发明的较佳实施例。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其它等效实施例,而本发明的范围由所附的权利要求范围决定。

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