一种组件化流处理过程中的硬编译方法及装置与流程

文档序号:16066934发布日期:2018-11-24 12:45阅读:221来源:国知局

本发明涉及编译技术领域,尤其涉及一种组件化流处理过程中的硬编译方法及装置。

背景技术

近年来,随着大数据处理技术的高速发展,各式各样的大数据分析处理平台不断推陈出新,大数据分析中心也慢慢的开始以各平台的独特的编译方式进行数据的处理、分析,它们的模型库中集成了mahout、pig、crunch、datafu等多种类型的函数模型,用户可以通过平台中的模型可以进行组件流的建立,创建业务流程应用事务。但是这些流程业务需要在流程应用每一次运行前进行编译过程,文件的编译与解析也需要提交到远端服务器,常常耗费很多时间,缺乏一个可视化和本地的平台,可以方便地通过拖曳的方式进行模型设计与解析和对业务流程仅进行一次编译,再发布到远端执行引擎执行。

现有的大数据相关的组件化流处理业务实现的模型解析功能在用户模型的编译与组件化流处理过程中,并没有对组件的流处理过程提出一套可行的编译方法;在运行编译方面,只是在流程业务进行运行前花费一定数量级的时间进行编译,没有能力解决组件化流程过程中编译时间冗余问题。



技术实现要素:

为了解决上述问题,本发明提出一种组件化流处理过程中的硬编译方法及装置。

具体的,一种组件化流处理过程中的硬编译方法,包括以下步骤:

s1.开始并选择运算模式,将各组件按照预设逻辑关系通过图形化业务流程生成平台创建业务流程并生成与业务流程对应的流程配置文件,所述流程配置文件包括各组件的逻辑关系;

s2.通过元数据索引查找分布式存储单元中是否存在可运行文件的存储信息,若存在,执行s45,若不存在,执行s3;

s3.模型硬编译单元根据选择的运算模式导入运算模式配置文件,读取所述元数据信息,根据所述流程配置文件及所述元数据索引获取所述业务流程所需的组件,根据所述流程配置文件的各组件的逻辑关系将各组件进行排列并封装为业务流程文件,将所述运算模式配置文件、流程配置文件及业务流程文件封装编译为所述可运行文件,并将所述可运行文件保存在临时目录中;

s4.将所述可运行文件上传至预设存储路径,同时将所述可运行文件的存储信息保存在分布式存储单元中;

s5.业务运行计算单元通过所述元数据索引调用所述可运行文件并执行运算;

s6.输出运算结果并结束业务流程。

进一步的,所述组件包括数据源组件、数据转换组件、数据分析组件、数据存储组件、数据操作组件、异常处理组件、服务器预设组件、扩展组件及结束组件。

进一步的,所述运算模式包括批处理模式和实时处理模式。

进一步的,所述运算模式配置文件包括批处理配置文件及实时处理配置文件;

选择批处理模式时导入批处理配置文件;

选择实时处理模式时导入实时处理配置文件。

进一步的,所述可运行文件的存储信息包括所述可运行文件的存储路径。

进一步的,所述组件包括n个算子,若多次引用一个所述组件中的算子,只引用一次该所述组件。

进一步的,所述步骤s3还包括:将业务流程所需的依赖及关联库分别封装为依赖文件及关联库文件并与所述运算模式配置文件、流程配置文件及业务流程文件封装编译为所述可运行文件。

具体的,一种组件化流处理过程中的硬编译装置,包括:图形化业务流程生成平台、分布式存储单元、模型硬编译单元、分布式文件管理单元和业务运行计算单元;

所述图形化业务流程生成平台包括多个组件,用于选择运算模式、创建业务流程及生成流程配置文件;

所述分布式存储单元用于存储组件、元数据、运算模式配置文件、流程配置文件及可运行文件的存储信息;

所述模型硬编译单元用于根据元数据的索引获取业务流程所需的组件,并根据流程配置文件的各组件的逻辑关系将各组件进行排列并封装为业务流程文件,将运算模式配置文件、流程配置文件及业务流程文件封装编译为所述可运行文件;

所述分布式文件管理单元包括运行平台接口,用于存储组件及可运行文件;

所述业务运行计算单元包括批处理运算平台及实时处理运算平台,用于运算并将运算结果输出到指定路径。

本发明的有益效果在于:本发明解决了业务流程的运行时需要多次编译的难题,同时解决了首次编译以后还需要多次编译的问题,方便了用户创建业务流程,减少了流程创建时间,保证业务流程的高正确率的前提下减少业务运行时间。

附图说明

图1是本发明的一种组件化流处理过程中的硬编译方法流程图;

图2是本发明的一种组件化流处理过程中的硬编译装置结构图。

具体实施方式

为了对本发明的技术特征、目的和效果有更加清楚的理解,现对照附图说明本发明的具体实施方式。

如图1所示,一种组件化流处理过程中的硬编译方法,该方法可依赖于一种组件化流处理过程中的硬编译装置,也可独立实施,包括以下步骤:

s1.开始并选择运算模式,将各组件按照预设逻辑关系通过图形化业务流程生成平台创建业务流程并生成与业务流程对应的流程配置文件,流程配置文件包括各组件的逻辑关系,运算模式包括批处理模式和实时处理模式;

预先创建元数据及运算模式配置文件并存储在分布式存储单元中,本实施例的分布式存储单元为hbase数据库,元数据信息进行列存储,hbase数据库是一个面向列存储的分布式存储系统,可实现高性能的并发读写的特点很好的满足了图形化业务流程生成平台对存储系统的要求,元数据包括各组件的数据类型、存储位置、可运行文件存储位置等信息;

开始时用户需要将业务流程在图形化业务流程生成平台上绘制出完整、正确的业务流程,包括开始,运行模式选择,数据源,数据转换,数据分析,数据存储,数据操作,异常处理等基础流程组件以及业务流程结束等逻辑组件,该部分组件的jar文件存储在hdfs系统中,每个组件还包括若干算子,hbase数据库中的元数据可以索引该组件的路径信息,用户将业务流程进行保存,业务流程应用会保存在hbase数据库中,至此完成业务流程的创建。

s2.通过元数据索引查找分布式存储单元中是否存在可运行文件的存储信息,若存在,执行s5,若不存在,执行s3;

业务流程只是业务流程应用第一次运行的时候才需要编译,如果多次运行的话,根据hbase数据库中的元数据直接索引运行业务流程的可运行文件即可。

s3.模型硬编译单元根据选择的运算模式导入运算模式配置文件的jar文件,用户可根据需求采用实时处理模式或批处理模式,若选择实时处理模式,则可选择导入spark配置文件包,若选择批处理模式,则可以选择导入spark或mapreduce配置文件包,mapreduce或spark配置文件对应的计算平台分别是mapreduce与spark平台,其中mapreduce是面向大数据并行处理的计算模型、框架和平台,其提供map和reduce函数编程实现并行计算任务,提供了抽象的操作和并行编程接口,很好的完成了大规模数据的计算处理,很好的满足了业务流程的批量处理模式需求;而spark是专为大规模数据处理而设计的快速通过的计算引擎,spark具有的高速性将会是很好的满足业务流程的实时处理要求;

读取元数据信息,根据流程配置文件及元数据索引获取业务流程所需的对应组件的jar文件及业务流程的逻辑关系,涵盖流程开始,中间运算算子,数据的输入输出,异常处理等业务处理模块;

模型硬编译单元从hbase数据库读取业务流程的元数据信息及流程配置文件,根据流程配置文件以及元数据索引获取处理数据信息需要的组件以及其他依赖、关联库,在流程配置文件的串联下,为实现业务流程中的具体功能,将各组件按照组件引用的逻辑关系进行排列,并对排列好的组件进行封装编译为jar文化部格式的业务流程文件,同时将其他依赖和关联库分别以jar文件格式进行编译封装,将封装编译后的业务流程文件、依赖文件、关联库文件与流程配置文件以及运算模式配置文件进行封装编译为jar格式的可运行文件包,保存在服务器临时目录中;

编译过程中若多次引用一个组件中的算子,只引用一次该组件,其他的算子均从该组件中引用。

选择导入spark配置文件包或mapreduce配置文件包时的具体编译过程如下:

1)spark具体编译过程包括如下步骤:

a)调用spark集群中spark-shell工具,其中spark的shell提供了便捷的api,可以良好运行scala或者python语言;

b)创建新数据集dataset用以存储任务及readme文件;

c)可以查询dataset中的变量值,actions,或者转换新的数据集,进行编译打包前的调试和验证;

d)创建sparksession,设置任务名字,通过指令建立sparksession;

e)spark任务将基于sparkapi,模块提供编译配置文件,通过对编译配置文件进行解析,完成编译配置与编译流程定制;

f)检查目录结构后,通过编译连接命令,完成对spark文件进行编译,打包成具有可以执行效果的jar文件。

2)mapreduce具体编译过程可概括成如下步骤:

a)根据任务需求,添加模块中需要的jar文件;

b)将依赖文件添加到classpath路径下;

c)使用命令行编译任务源码;

d)用命令行工具将编译完成的class文件进行打包成jar文件;

e)创建在hdfs中的存储的路径文件。

s4.将完成了硬编译过程生成的可运行文件jar包文件上传至预设存储路径,这里预设存储路径为hdfs的业务流程应用目录,同时将可运行文件的存储信息保存在hbase数据库中。

s5.业务运行计算单元通过元数据索引调用可运行文件并执行运算,根据导入的spark配置文件或mapreduce配置文件分别通过spark平台或mapreduce平台进行运算。

s6.输出运算结果到业务流程指定的结果组件中并结束业务流程。

进一步的,组件包括数据源组件、数据转换组件、数据分析组件、数据存储组件、数据操作组件、异常处理组件、服务器预设组件、扩展组件及结束组件。

进一步的,运算模式配置文件包括批处理配置文件及实时处理配置文件;

选择批处理模式时导入批处理配置文件,批处理配置文件可选择spark或mapreduce配置文件;

选择实时处理模式时导入实时处理配置文件,实时处理配置文件为spark配置文件。

进一步的,可运行文件的存储信息包括可运行文件的存储路径。

进一步的,组件包括n个算子,若多次引用一个组件中的算子,只引用一次该组件。

进一步的,步骤s3还包括:将业务流程所需的依赖及关联库分别封装为依赖文件及关联库文件并与运算模式配置文件、流程配置文件及业务流程文件封装编译为可运行文件。

如图2所示,一种组件化流处理过程中的硬编译装置,包括:图形化业务流程生成平台、分布式存储单元、模型硬编译单元、分布式文件管理单元和业务运行计算单元;

图形化业务流程生成平台包括多个组件,以图形化形式编辑业务流程,包括选择运算模式、创建业务流程及生成流程配置文件,用户在该平台中可以通过提供的各个模型的用例组件连接形成业务流程,并将业务流程应用上传到hbase分布式存储单元。

分布式存储单元,具体为hbase分布式存储单元,用于存储组件、元数据、运算模式配置文件、流程配置文件及可运行文件的存储信息;具体包括图形化业务流程生成平台上传的业务流程应用的元数据信息,元数据可通过索引查找存储在hdfs指定路径下的基本组件jar文件,包括硬编译过后的jar文件在hdfs系统中的存储位置信息。

模型硬编译单元用于根据元数据的索引获取业务流程所需的组件,并根据流程配置文件的各组件的逻辑关系将各组件进行排列并封装为业务流程文件,将运算模式配置文件、流程配置文件及业务流程文件封装编译为可运行文件;具体包括读取hbase分布式存储单元中元数据信息,根据流程配置文件以及元数据索引处理数据信息需要的基本组件以及其他依赖、关联库,并将其以jar文件格式进行编译,封装完毕的各模块组件与流程配置文件以及运算模式配置文件进行封装编译,将以上jar文件按照流程配置文件的流程逻辑信息硬编译成最终版本运行jar包,保存在服务临时目录中。

分布式文件管理单元包括运行平台接口,用于存储组件及可运行文件,具体为hadoop分布式文件管理单元,用于保存预设的流程基本组件jar文件,根据路径保存硬编译单元新生成的jar包同时删除临时文件。

业务运行计算单元包括批处理运算平台及实时处理运算平台,用于运算并将运算结果输出到指定路径,用户在创建业务流程时会选择流程运算模式,选择批处理模式则执行mapreduce或者spark计算,若选择实时处理模式则执行spark计算。

需要说明的是,对于前述的各个方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某一些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和单元并不一定是本申请所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其他实施例的相关描述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、rom、ram等。

以上所揭露的仅为本发明较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。

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