一种基于storm的大数据自适应拓扑处理方法与流程

文档序号:14686185发布日期:2018-06-14 23:45阅读:222来源:国知局

本发明涉及一种大数据处理方法,尤其是一种基于storm的大数据自适应拓扑处理方法。



背景技术:

在电信、互联网、物联网、金融等诸多领域,数据呈现快速增长、单位价值密度低、模式变化迅速、价值随处理时间流逝而减低的特征。也就是说,数据规模大、增长速度快,强调处理时间的快速,并需要从多变模式中能够动态的选择服务来对数据进行实时分析、实时挖掘。由于数据流具有不同于传统静态数据的特点(有序性、高速性、无边际性、快速变化),传统的数据处理方式不能够满足大数据流计算的应用场景,在这种大数据流的查询和挖掘处理中给了我们一个新的研究课题,给研究领域和工业领域带来了新的挑战。



技术实现要素:

本发明要解决的技术问题是传统的数据处理方式不能够满足大数据流计算的应用场景。

为了解决上述技术问题,本发明提供了一种基于storm的大数据自适应拓扑处理方法,包括如下步骤:

步骤1,监听用户请求,实时监听用户的定制服务请求,并在监听到定制服务请求时获取用户的请求信息;

步骤2,请求信息解析,提取请求信息中的用户语句,并对用户语句进行词法和语法的解析;

步骤3,生成拓扑逻辑,根据词法和语法解析的解析结果在算子执行树上选择相应的算子,并将选择的算子组合生成storm可识别运算的拓扑逻辑;

步骤4,数据流查询,对接入的数据流进行汇总,按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理,以获取有价值的数据。

通过实时监听用户的定制服务请求来根据不同用户的不同需求选择运算算子,动态地定制服务,生成storm可识别运算的拓扑逻辑,从而达到数据处理服务的动态定制和实时处理;采用算子执行树能够方便选择相应的算子,从而组成符合用户定制请求的最优算子执行拓扑,增强了数据流查询和挖掘的针对性,最大可能地保证数据的时效性。

作为本发明的进一步限定方案,步骤1中,在监听到定制服务请求时开启新的线程来获取用户的请求信息。通过开启新的线程来获取用户的请求信息,有效提高了信息的获取和处理效率,适应于大数据流的实时处理。

作为本发明的进一步限定方案,步骤2中,在词法和语法解析后还需验证用户语句是否合法,若用户语句不合法,则返回步骤1,若用户语句合法,则进入步骤3。通过对用户语句的合法性验证,能够有效避免用户的误操作。

作为本发明的进一步限定方案,步骤2中,利用语法树对用户语句进行词法和语法的解析。采用语法树对用户语句进行词法和语法的解析能够有效提高词法和语法解析的效率和精确性。

作为本发明的进一步限定方案,步骤3中,词法和语法解析的解析结果包括待调用算子的名称及其优先级,算子执行树上设有按照预定义优先级排列的各个算子。通过将算子按照预定义优先级进行排列,能够方便使用频率较高的算子选择调用,提高数据流的查询和挖掘效率。

作为本发明的进一步限定方案,算子执行树上设有的算子包括选择算子、连接算子、投影算子、去重算子、过滤算子以及聚合算子。考虑到大型数据集具有数据体量大、数据类型多样、处理速度快、价值密度低的特点,通过选择其中的一种或多种算子的组合来对数据流进行分类和查询,对原始数据集提取有用的信息,不断把处理好的数据发送给下一步骤的数据流查询,从而获得有价值的数据。

作为本发明的进一步限定方案,步骤4中,在按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理时,在每一级算子处理完毕后对获得的处理结果进行存储。采用对处理结果进行存储,使系统在崩溃后重启仍能从内存中读取中间结果,减少数据丢失,增强了可靠性。

作为本发明的进一步限定方案,步骤4中,在按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理时,需要将上一级算子输出的数据格式发送给下一级算子。由于在数据流查询的过程中,数据的格式会随着算子的运算而改变,另一方面storm数据的传输是无类型传输,算子接收数据后不能识别接收的数据格式与类型,为了解决算子动态组合时数据之间的通信问题,我们需要将上一级算子输出的数据格式发送给下一级算子。

本发明的有益效果在于:(1)通过实时监听用户的定制服务请求来根据不同用户的不同需求选择运算算子,动态地定制服务,生成storm可识别运算的拓扑逻辑,从而达到数据处理服务的动态定制和实时处理;(2)采用算子执行树能够方便选择相应的算子,从而组成符合用户定制请求的最优算子执行拓扑,增强了数据流查询和挖掘的针对性,最大可能地保证数据的时效性。

附图说明

图1为本发明的方法流程图。

具体实施方式

本发明所采用的storm是个实时的、分布式以及具备高容错的计算系统。storm可以处理大批量的数据,并在保证高可靠性的前提下还可以让处理进行的更加实时;也就是说,所有的信息都会被处理。storm还具备容错和分布计算这些特性,这就让storm可以扩展到不同的机器上进行大批量的数据处理。

storm计算系统平台主要分为三层,分别是用户交互层、逻辑处理层以及执行层。其中,用户交互层,主要负责和用户的交互的任务,包括用户的语句输入,系统文件的调用,结果的显示,通过对数据语句的解析得到语句列表传给下一层进行处理;逻辑处理层,负责处理用户层发送的语句列表,根据语句解析对应的类型来执行相应的操作,并调用执行层中的模块;执行层,主要负责执行逻辑处理层的调用和执行,在执行层中主要有持续查询模块、即席查询模块和创建流模块。

由于大型数据集具有数据体量大、数据类型多样、处理速度快、价值密度低的特征,因此在处理大型数据之前,必须对原始大型数据集进行数据挖掘,提取对有用的信息。而storm计算系统平台可以根据用户的需要,通过CQL语句调用聚类、分类等数据挖掘算法,将数据加以定量描述,通过聚类、分类算法对样本进行分类处理,然后把处理好的数据交给数据流查询模块进行处理。

在数据流查询模块中有两大组件,一个是即席查询,即缓存一段时间的数据,对这些数据进行查询操作;另外一个是持续查询,即对数据流不断的进行查询,并且将查询结果显示在控制台。此外,storm为大数据的实时计算提供了一些逻辑组件,主要有topology(计算拓扑)、stream(消息流)、spout(消息源)、bolt(消息处理者)、streamgrouping(消息分发策略)、task(任务)、worker(工作进程);其中bolt可以做很多事情,我们把消息处理逻辑封装在bolt中。

如图1所示,本发明的基于storm的大数据自适应拓扑处理方法,包括如下步骤:

步骤1,监听用户请求,实时监听用户的定制服务请求,并在监听到定制服务请求时开启新的线程来获取用户的请求信息;

步骤2,请求信息解析,提取请求信息中的用户语句,并利用语法树对用户语句进行词法和语法的解析,在词法和语法解析后还需验证用户语句是否合法,若用户语句不合法,则返回步骤1,若用户语句合法,则进入步骤3;

步骤3,生成拓扑逻辑,根据词法和语法解析的解析结果在算子执行树上选择相应的算子,并将选择的算子组合生成storm可识别运算的拓扑逻辑,词法和语法解析的解析结果包括待调用算子的名称及其优先级,算子执行树上设有按照预定义优先级排列的各个算子,算子执行树上设有的算子包括选择算子、连接算子、投影算子、去重算子、过滤算子以及聚合算子;

步骤4,数据流查询,对接入的数据流进行汇总,按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理,以获取有价值的数据,在按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理时,在每一级算子处理完毕后对获得的处理结果进行存储,并在按照拓扑逻辑中的算子依次对数据流进行查询和挖掘处理时,需要将上一级算子输出的数据格式发送给下一级算子。

在进行数据流查询时,需要定义好各个算子组合的属性名称和数据格式作为组合信息,并且把组合信息传入到系统的配置类中;数据流在bolt中处理时,会从配置类中获取组合信息,根据这些信息做相应的算子操作。比如连接算子,进行连接操作时,先调用配置类,获取需要进行连接操作的数据流的组合信息,然后根据用户定义的连接逻辑对数据流进行合并;这时候会形成一条新的数据流,我们需要对这条新的数据流的组合信息进行重新定义,并把信息发送给系统的配置类中,方便下一级算子获取组合信息,正确进行解析。

本发明的优点在于:

(1)本发明的自适应拓扑处理方法可以根据不同用户的不同需求,来选择运算算子,动态地定制服务,并且利用storm分布式的特性,使数据能够在分布式环境下消费,从而达到数据处理服务的动态定制和实时处理。

(2)用户对于实时流有着必要的查询和挖掘操作,而用户对于利用storm来处理大数据的学习成本较高,为了节约用户时间,让用户更专注于数据的分析,我们按照CQL语法标准,做了CQL语法解析器,在storm集群上实现了投影,过滤,分组,聚集,连接等函数,让用户可以在不熟悉storm情况下,简单了解CQL语法,便能够方便地定制服务,对于实时的数据流进行查询和挖掘操作。

(3)系统在分析用户语句后,根据语义提取相关信息转换成数据处理算子列表,我们编写适配算子,和算子之间通信模块,制定算子的选择策略,使初始算子列表根据选择策略调整算子执行顺序,组成符合语义的最优列表,并选择算子组合成为storm可执行的拓扑逻辑,最后由物理层处理处理。

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