CN107885587B - 一种大数据分析流程的执行计划生成方法 - Google Patents
一种大数据分析流程的执行计划生成方法 Download PDFInfo
- Publication number
- CN107885587B CN107885587B CN201711148535.3A CN201711148535A CN107885587B CN 107885587 B CN107885587 B CN 107885587B CN 201711148535 A CN201711148535 A CN 201711148535A CN 107885587 B CN107885587 B CN 107885587B
- Authority
- CN
- China
- Prior art keywords
- task
- analysis
- dependence
- instances
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 103
- 238000007405 data analysis Methods 0.000 title claims abstract description 50
- 238000004458 analytical method Methods 0.000 claims abstract description 146
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 239000013589 supplement Substances 0.000 claims description 4
- 230000001502 supplementing effect Effects 0.000 claims description 4
- 238000004891 communication Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 9
- 230000002159 abnormal effect Effects 0.000 description 8
- 238000010586 diagram Methods 0.000 description 8
- 238000005516 engineering process Methods 0.000 description 7
- 239000000047 product Substances 0.000 description 7
- 238000013497 data interchange Methods 0.000 description 4
- 238000013135 deep learning Methods 0.000 description 3
- 238000004321 preservation Methods 0.000 description 3
- 230000001052 transient effect Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 2
- 238000009738 saturating Methods 0.000 description 2
- 241000208340 Araliaceae Species 0.000 description 1
- 235000005035 Panax pseudoginseng ssp. pseudoginseng Nutrition 0.000 description 1
- 235000003140 Panax quinquefolius Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000009954 braiding Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000008434 ginseng Nutrition 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow collaboration or project management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Human Resources & Organizations (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Engineering & Computer Science (AREA)
- Economics (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种大数据分析流程的执行计划生成方法,所述方法根据每个分析任务生成了可执行的任务实例,然后根据任务实例中保存的依赖关系,建立有向无环图,按照依赖关系遍历依赖任务序列,并执行依赖实例,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务,然后执行所述任务实例,生成任务结果文件。本发明提供的大数据分析流程的执行计划生成方法,根据大数据分析流程中分析任务具有数据传递关系的特点,以规则的形式强化了分析任务之间在数据上的关联关系,提高了大数据分析的效率,降低了大数据分析对技术人员技能的要求,避免将数据透露给大数据分析提供商,降低了安全风险。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种大数据分析流程的执行计划生成方法。
背景技术
随着大数据技术的不断发展,市场上出现了许多相关技术和产品,成为大数据获取、存储、处理分析或可视化的有效手段。但使用这些技术和产品存在较高的技术门槛,怎样将大数据技术以标准化的形式组织起来,为使用者提供便捷、高效的使用方法,成为一项巨大挑战。传统的工作流引擎作为各个领域应用系统的一部分,具备较好的通用性和完备性,但流程定义复杂,强调角色、分工、信息传递路由、内容等级等执行业务流程的解决方案,并不适合聚焦于数据传递、数据处理和分析、结果展现等方面的大数据分析流程。大数据分析流程中的任务多种多样,但具备一些特殊性质。比如几乎所有任务都需要传入数据,而任务的输出也局限于模型、数据、计算结果这几类。另外,任务之间除了调度上的先后关系,还包括数据上的传递关系。这些性质决定了大数据分析流程需要更具针对性的技术手段来组织和执行。
现有技术中,大数据分析服务提供商提供一系列基于云平台的大数据分析产品。但是,这些大数据分析产品并不开源,产品的使用需要较高的技术门槛,对操作者的技术水平有较高的要求,并且,对于企业用户来说,云端的大数据分析产品无法与本地系统结合,难以适应企业系统中的特殊数据分析需求。同时,将关乎企业命脉的核心数据大批量存放到服务提供商运营的云平台上,存在巨大的安全风险。
发明内容
(一)要解决的技术问题
本发明的目的是提供一种大数据分析流程的执行计划生成方法,解决了现有技术中的大数据分析产品的使用技术门槛高,分析效率低。
(二)技术方案
为了解决上述技术问题,一方面,本发明提供一种大数据分析流程的执行计划生成方法,包括:
若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
进一步地,所述方法还包括:
根据所述任务实例的执行状态标识判断所述任务实例是否执行完成,所述执行状态标识包括第一标识以及第二标识,所述第一标识用于表示所述任务实例的执行过程中发生异常,所述第二标识用于表示所述任务实例的执行过程中未发生异常。
进一步地,所述执行所述任务实例具体为:
调用第三方程序执行所述任务实例中指定的可执行文件,所述指定的可执行文件为实现所述分析任务的算法的可执行文件。
进一步地,还包括:
将每个分析任务的描述保存到第一内存哈希表中,所述分析任务的描述包括任务地址、任务名称、任务参数值、依赖任务序列和依赖任务输出端口;
遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化;
再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系;
生成所述分析任务对应的任务实例。
进一步地,所述遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化具体为:
根据所述分析任务的任务名称,从外部标准化算子库中获取实现所述分析任务的算法的参数元信息、输入和输出信息、执行环境和可执行文件;
创建所述任务实例的对象,生成数据库记录,所述数据库记录存储所述任务实例的任务实例地址、任务实例执行状态标识和任务实例输出结果地址;
创建所述任务实例的目录,用来存储与所述任务实例相关的中间结果文件和状态标记文件;
根据所述参数元信息补全所述任务参数值缺失的默认值;
为所述任务实例输出的中间结果生成中间结果地址,按照所述目录保存到第二内存哈希表中;
根据所述执行环境和所述可执行文件生成第三方程序平台的可执行的任务实例,并将所述参数元信息传入所述任务实例,再将所述任务实例保存到第三内存哈希表中。
进一步地,所述再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系具体为:
获取所述分析任务的所述依赖任务序列;
将所述分析任务的依赖属性保存到所述任务实例中,所述依赖属性为所述分析任务的所述依赖任务序列;
将依赖实例的输出结果作为所述任务实例的输入数据,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务。
进一步地,所述第三方程序为Spark客户端程序或者Python解释器程序。
进一步地,所述分析任务的描述的结构采用JSON格式。
另一方面,本发明提供一种大数据分析流程的执行计划生成装置,包括:
执行模块,用于若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
生成模块,用于在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
再一方面,本发明提供一种用于生成大数据分析流程的执行计划的电子设备,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行上述的方法。
又一方面,本发明提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述的方法。
又一方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的方法。
(三)有益效果
本发明提供的大数据分析流程的执行计划生成方法,根据大数据分析流程中分析任务具有数据传递关系的特点,以规则的形式强化了分析任务之间在数据上的关联关系,提高了大数据分析的效率,降低了大数据分析对技术人员技能的要求,避免将数据透露给大数据分析提供商,降低了安全风险。并通过结合外部标准化算子库,保证了分析任务的扩展性。而且以轻量级数据交换格式JSON描述分析任务,排除了传统工作流引擎中繁琐冗杂的部分,同时支持Spark计算平台和Python计算环境,为进一步使用深度学习框架提供了充分的支撑。
附图说明
图1为依照本发明实施例的大数据分析流程的执行计划生成方法示意图;
图2为依照本发明实施例的生成可执行的任务实例方法示意图;
图3为依照本发明实施例的大数据分析流程的执行计划生成方法逻辑流程图;
图4为依照本发明实施例的大数据分析流程的执行计划生成装置示意图;
图5为本发明实施例提供的用于生成大数据分析流程的执行计划的电子设备的结构示意图。
具体实施方式
为了使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1:
图1为依照本发明实施例的大数据分析流程的执行计划生成方法示意图,如图1所示,本发明提供一种大数据分析流程的执行计划生成方法,包括:
步骤S10、若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
步骤S20、在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
进一步地,所述方法还包括:
根据所述任务实例的执行状态标识判断所述任务实例是否执行完成,所述执行状态标识包括第一标识以及第二标识,所述第一标识用于表示所述任务实例的执行过程中发生异常,所述第二标识用于表示所述任务实例的执行过程中未发生异常。
进一步地,所述执行所述任务实例具体为:
调用第三方程序执行所述任务实例中指定的可执行文件,所述指定的可执行文件为实现所述分析任务的算法的可执行文件。
进一步地,还包括:
将每个分析任务的描述保存到第一内存哈希表中,所述分析任务的描述包括任务地址、任务名称、任务参数值、依赖任务序列和依赖任务输出端口;
遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化;
再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系;
生成所述分析任务对应的任务实例。
进一步地,所述遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化具体为:
根据所述分析任务的任务名称,从外部标准化算子库中获取实现所述分析任务的算法的参数元信息、输入和输出信息、执行环境和可执行文件;
创建所述任务实例的对象,生成数据库记录,所述数据库记录存储所述任务实例的任务实例地址、任务实例执行状态标识和任务实例输出结果地址;
创建所述任务实例的目录,用来存储与所述任务实例相关的中间结果文件和状态标记文件;
根据所述参数元信息补全所述任务参数值缺失的默认值;
为所述任务实例输出的中间结果生成中间结果地址,按照所述目录保存到第二内存哈希表中;
根据所述执行环境和所述可执行文件生成第三方程序平台的可执行的任务实例,并将所述参数元信息传入所述任务实例,再将所述任务实例保存到第三内存哈希表中。
进一步地,所述再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系具体为:
获取所述分析任务的所述依赖任务序列;
将所述分析任务的依赖属性保存到所述任务实例中,所述依赖属性为所述分析任务的所述依赖任务序列;
将依赖实例的输出结果作为所述任务实例的输入数据,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务。
进一步地,所述第三方程序为Spark客户端程序或者Python解释器程序。
进一步地,所述分析任务的描述的结构采用JSON格式。
具体的,在本发明实施例中,首先根据分析任务生成可执行的任务实例,然后根据任务实例中保存的依赖关系,建立有向无环图,按照依赖关系遍历依赖任务序列,并执行依赖实例,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务执,然后执行所述任务实例,生成任务结果文件,并更新任务实例记录,与此同时,在任务调度过程中检查任务的执行进展,发现任务异常终止流程,未发现异常则记录任务成功执行,当所有任务成功执行则记录流程成功执行。
下面首先对根据分析任务生成可执行的任务实例的具体过程做详细说明如下:
分析流程定义作为组织大数据分析任务的基础,具体定义了分析流程中各个分析任务的具体执行内容以及任务之间的先后依赖关系。对分析任务的描述的结构采用具有良好可读性和便于快速编写特性的轻量级数据交换格式JSON。该描述中的分析任务内容引用外部标准化的算子库,其中关联的算子信息具体包括实现所述分析任务的算法的参数元信息、输入和输出信息、执行环境和可执行文件等。该描述中的任务关系通过每个任务所依赖的任务序列以及对应的“输出到输入”映射关系序列来表示。分析任务属性具体定义如表1所示。所述分析任务的描述包括任务地址task_id、任务名称task_name、任务参数值task_parameters、依赖任务序列task_dependencies和依赖任务输出端口task_dependency_ports。任务地址task_id为流程中唯一标记某个任务,任务名称task_name为与任务内容关联的指定名称,任务参数值task_parameters为分析任务的各个参数取值,依赖任务序列task_dependencies为该分析任务所依赖的其他任务,每个元素是一个task_id,依赖任务输出端口task_dependency_ports指定了所依赖任务的输出端口。
表1分析任务属性表
图2为依照本发明实施例的生成可执行的任务实例方法示意图,如图2所示,首先,将每个分析任务的描述保存到第一内存哈希表中,所述分析任务的描述包括任务地址、任务名称、任务参数值、依赖任务序列和依赖任务输出端口,第一内存哈希表可以表示为Ttask=<task_id,values>,其中,values={task_name,task_parameters,task_dependencies,task_dependency_ports}。
遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化。具体过程如下:
以每个分析任务ti的任务名称task_name作为算子标识,以算子标识为查询依据,从外部标准化算子库中获得实现该分析任务的算法的参数元信息、输入和输出、执行环境和可执行文件信息等,外部标准化算子库需要包含的算子信息如表2所示。从外部标准化算子库中获取的实现所述分析任务的算法包括分析任务名称task_name、参数元信息parameter_metadata、输入和输出信息ports_metadata、执行环境execution_environment和可执行文件executor_file。任务名称task_name为算子库中算子的唯一标记,参数元信息parameter_metadata为算子参数的元信息,输入和输出信息ports_metadata为算子输入和输出的元信息,执行环境execution_environment为算子的执行环境,可执行文件executor_file为算法的可执行文件。
表2算子库基本内容表
为每个分析任务ti的任务实例创建对象Oi,生成数据库记录,以存储所述任务实例的任务实例地址、任务实例执行状态标识和任务实例输出结果地址等信息,任务实例的数据库记录如表3所示。任务实例地址instance_id为全局唯一的任务实例标记,任务实例执行状态标识instance_state为任务实例执行状态的标识,任务实例输出结果地址instance_output为任务运行结果文件的保存地址。
表3任务实例表
为每个任务实例创建专属目录,用来存储于该运行实例相关的中间结果文件、状态标记文件等。
检查所述分析任务的任务参数值task_parameters是否与算子库中指定算法的参数元信息parameter_metadata匹配,若相匹配,则判断为参数合法,进行类型校验,补全任务参数值task_parameters中缺失的默认值。若不相匹配,则判断为参数不合法,分析任务实施化失败。
检查所述分析任务的任务输入输出设置是否与算子库中指定算法的输入和输出信息ports_metadata匹配,若相匹配,则判断为输入合法,在任务所属目录的基础上,为任务实例输出的中间结果动态生成中间结果地址,并保存到第二内存哈希表中,该第二内存哈希表可表示为Toutput=<task_id,outputs>,其中outputs=[output_1,…,output_m],代表了分析任务task_id对应的m应个输出文件地址。若不相匹配,则判断为输入不合法,分析任务实施化失败。
检查分析任务指定算法的可执行文件executor_file是否可访问,执行环境execution_environment是否准备就绪,若可执行文件executor_file可访问,且执行环境execution_environment准备就绪。
根据分析任务指定算法需要的执行环境execution_environment,生成第三方程序平台的可执行的任务实例Ii,并传入该算法所需要的参数元信息,同时将该任务实例保存到第三内存哈希表中,所述第三内存哈希表可表示为Tinstance=<task_id,Ii>,其中,所述第三方程序平台可以为Spark或者Python计算平台。
再次遍历所有的任务{ti∈Ttask},补充任务的依赖关系,指定任务实例的输入信息,具体过程如下:
根据流程定义,得到所有依赖的任务序列task_dependenciesi。
根据第三内存哈希表Tinstance保存的任务实例,依据依赖任务序列得到每个依赖任务的可执行任务实例Ii,将该任务实例的依赖任务序列
task_dependenciesi作为依赖属性保存到当前任务实例中。
根据第二内存哈希表Toutput中保存的中间结果文件和状态标记文件,得到每个依赖任务的结果地址,根据第一内存哈希表Ttask中指定的“输出到输入”映射关系task_dependencies和task_dependency_ports,将依赖任务的结果地址序列保存到该任务实例中,作为执行该任务实例时的输入数据;
将没有被依赖任务的任务实例放入叶子任务实例集Ileaf中。
将叶子任务实例集Ileaf中的任务实例作为依赖属性保存到总任务实例集Iend中。
经过以上步骤,完成根据分析任务生成可执行的任务实例。
图3为依照本发明实施例的大数据分析流程的执行计划生成方法逻辑流程图,如图3所示,下面对任务实例的具体执行过程做详细的说明如下:
(1)以总任务实例集Iend作为目标任务Ri,进入步骤(2)所代表的任务执行过程;
(2)给定目标任务Ri,检查该任务实例是否存在完成标记,存在完成标记则表示该任务实例执行完成,若没有则执行步骤(2-1),若有则执行步骤(3);
(2-1)检查其是否存在依赖任务,若存在执行(2-2),若不存在执行步骤(2-3);
(2-2)遍历依赖任务序列,分别作为目标任务Ri′,进入步骤(2)所代表的任务执行过程,递归遍历完毕后,完成依赖任务的执行,则执行步骤(2-3);所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务;
(2-3)执行所述任务实例,即目标任务R,以任务实例的输入数据、输出结果地址、算法参数元信息作为算法指定的可执行文件的参数列表,调用第三方程序执行该指定的可执行文件;所述第三方程序可以为Spark客户端程序或者Python解释器程序;
(2-4)如果执行过程中发生异常,标记任务实例记录中的任务实例执行状态标识instance_state为失败,并终止整个分析流程的执行;如果没有发生异常,执行步骤(2-5);其中,根据所述任务实例的执行状态标识判断所述任务实例是否执行完成,所述执行状态标识包括第一标识以及第二标识。若判断获知所述任务实例的执行过程中发生异常,则将任务实例执行状态标识标记为第一标识,第一标识可以用“0”表示,若判断获知所述任务实例的执行过程中未发生异常,则将任务实例执行状态标识标记为第二标识,第二标识可以用“1”表示。
(2-5)任务执行完毕,标记任务实例记录中的状态字段instance_state为成功,在任务实例所属的文件夹中创建任务完毕标记文件,以便后续检查;
(3)流程执行完毕。
本发明实施例提供的大数据分析流程的执行计划生成方法,根据大数据分析流程中分析任务具有数据传递关系的特点,以规则的形式强化了分析任务之间在数据上的关联关系,提高了大数据分析的效率,降低了大数据分析对技术人员技能的要求,避免将数据透露给大数据分析提供商,降低了安全风险。并通过结合外部标准化算子库,保证了分析任务的扩展性。而且以轻量级数据交换格式JSON描述分析任务,排除了传统工作流引擎中繁琐冗杂的部分,同时支持Spark计算平台和Python计算环境,为进一步使用深度学习框架提供了充分的支撑。
实施例2:
图4为依照本发明实施例的大数据分析流程的执行计划生成装置示意图,如图4所示,本发明实施例提供一种大数据分析流程的执行计划生成装置,用于完成上述实施例中所述的方法。该装置包括,执行模块10和生成模块20,其中,
执行模块10用于若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
生成模块20用于在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
具体的,首先,需要根据分析任务生成可执行的任务实例,然后执行所述任务实例。
下面对任务实例的具体执行过程做详细的说明如下:
(1)以总任务实例集Iend作为目标任务Ri,进入步骤(2)所代表的任务执行过程;
(2)给定目标任务Ri,执行模块10检查该任务实例是否存在完成标记,存在完成标记则表示该任务实例执行完成,若没有则执行步骤(2-1),若有则执行步骤(3);
(2-1)检查其是否存在依赖任务,若存在执行(2-2),若不存在执行步骤(2-3);
(2-2)遍历依赖任务序列,分别作为目标任务Ri′,进入步骤(2)所代表的任务执行过程,递归遍历完毕后,完成依赖任务的执行,则执行步骤(2-3);所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务;
(2-3)通过执行模块20执行所述任务实例,即目标任务R,以任务实例的输入数据、输出结果地址、算法参数元信息作为算法指定的可执行文件的参数列表,调用第三方程序执行该指定的可执行文件;所述第三方程序可以为Spark客户端程序或者Python解释器程序;
(2-4)如果执行过程中发生异常,标记任务实例记录中的任务实例执行状态标识instance_state为失败,并终止整个分析流程的执行;如果没有发生异常,执行步骤(2-5);其中,若判断获知所述任务实例的执行过程中发生异常,则将任务实例执行状态标识标记为第一标识,第一标识可以用“0”表示,若判断获知所述任务实例的执行过程中未发生异常,则将任务实例执行状态标识标记为第二标识,第二标识可以用“1”表示。
(2-5)任务执行完毕,标记任务实例记录中的状态字段instance_state为成功,在任务实例所属的文件夹中创建任务完毕标记文件,以便后续检查;
(3)流程执行完毕。
本发明实施例提供的大数据分析流程的执行计划生成装置,根据大数据分析流程中分析任务具有数据传递关系的特点,以规则的形式强化了分析任务之间在数据上的关联关系,提高了大数据分析的效率,降低了大数据分析对技术人员技能的要求,避免将数据透露给大数据分析提供商,降低了安全风险。并通过结合外部标准化算子库,保证了分析任务的扩展性。而且以轻量级数据交换格式JSON描述分析任务,排除了传统工作流引擎中繁琐冗杂的部分,同时支持Spark计算平台和Python计算环境,为进一步使用深度学习框架提供了充分的支撑。
实施例3:
图5为本发明实施例提供的用于生成大数据分析流程的执行计划的电子设备的结构示意图,如图5所示,所述设备包括:处理器(processor)801、存储器(memory)802和总线803;
其中,处理器801和存储器802通过所述总线803完成相互间的通信;
处理器801用于调用存储器802中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:
若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
实施例4:
本发明实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:
若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
实施例5:
本发明实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:
若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的装置及设备等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (7)
1.一种大数据分析流程的执行计划生成方法,其特征在于,包括:
将每个分析任务的描述保存到第一内存哈希表中,所述分析任务的描述包括任务地址、任务名称、任务参数值、依赖任务序列和依赖任务输出端口;
遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化;
再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系;
生成所述分析任务对应的任务实例;
若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件;
所述遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化具体为:
根据所述分析任务的任务名称,从外部标准化算子库中获取实现所述分析任务的算法的参数元信息、输入和输出信息、执行环境和可执行文件;
创建所述任务实例的对象,生成数据库记录,所述数据库记录存储所述任务实例的任务实例地址、任务实例执行状态标识和任务实例输出结果地址;
创建所述任务实例的目录,用来存储与所述任务实例相关的中间结果文件和状态标记文件;
根据所述参数元信息补全所述任务参数值缺失的默认值;
为所述任务实例输出的中间结果生成中间结果地址,按照所述目录保存到第二内存哈希表中;
根据所述执行环境和所述可执行文件生成第三方程序平台的可执行的任务实例,并将所述参数元信息传入所述任务实例,再将所述任务实例保存到第三内存哈希表中;
所述再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系具体为:
获取所述分析任务的所述依赖任务序列;
将所述分析任务的依赖属性保存到所述任务实例中,所述依赖属性为所述分析任务的所述依赖任务序列;
将依赖实例的输出结果作为所述任务实例的输入数据,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
根据所述任务实例的执行状态标识判断所述任务实例是否执行完成,所述执行状态标识包括第一标识以及第二标识,所述第一标识用于表示所述任务实例的执行过程中发生异常,所述第二标识用于表示所述任务实例的执行过程中未发生异常。
3.根据权利要求1所述的方法,其特征在于,所述执行所述任务实例具体为:
调用第三方程序执行所述任务实例中指定的可执行文件,所述指定的可执行文件为实现所述分析任务的算法的可执行文件。
4.根据权利要求1或3所述的方法,其特征在于,所述第三方程序为Spark客户端程序或者Python解释器程序。
5.根据权利要求1所述的方法,其特征在于,所述分析任务的描述的结构采用JSON格式。
6.一种大数据分析流程的执行计划生成装置,其特征在于,包括:
执行模块,用于将每个分析任务的描述保存到第一内存哈希表中,所述分析任务的描述包括任务地址、任务名称、任务参数值、依赖任务序列和依赖任务输出端口;遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化;再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系;生成所述分析任务对应的任务实例;还用于若判断获知分析任务对应的任务实例未执行完成且所述任务实例存在依赖任务,则遍历依赖任务序列,并执行所述依赖任务序列中的所述依赖任务;
生成模块,用于在执行完所述依赖任务序列中的所述依赖任务以后,若判断获知所述任务实例执行完成,则生成任务结果文件;
所述遍历所述第一内存哈希表中的所有的分析任务,对所述分析任务进行实例化具体为:
根据所述分析任务的任务名称,从外部标准化算子库中获取实现所述分析任务的算法的参数元信息、输入和输出信息、执行环境和可执行文件;
创建所述任务实例的对象,生成数据库记录,所述数据库记录存储所述任务实例的任务实例地址、任务实例执行状态标识和任务实例输出结果地址;
创建所述任务实例的目录,用来存储与所述任务实例相关的中间结果文件和状态标记文件;
根据所述参数元信息补全所述任务参数值缺失的默认值;
为所述任务实例输出的中间结果生成中间结果地址,按照所述目录保存到第二内存哈希表中;
根据所述执行环境和所述可执行文件生成第三方程序平台的可执行的任务实例,并将所述参数元信息传入所述任务实例,再将所述任务实例保存到第三内存哈希表中;
所述再次遍历所述第一内存哈希表中的所有的分析任务,补充所述分析任务的依赖关系具体为:
获取所述分析任务的所述依赖任务序列;
将所述分析任务的依赖属性保存到所述任务实例中,所述依赖属性为所述分析任务的所述依赖任务序列;
将依赖实例的输出结果作为所述任务实例的输入数据,所述依赖实例为依赖任务的任务实例,所述依赖任务为所述依赖任务序列中与所述分析任务相依赖的其他分析任务。
7.一种用于生成大数据分析流程的执行计划的电子设备,其特征在于,包括:
存储器和处理器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如权利要求1至5任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711148535.3A CN107885587B (zh) | 2017-11-17 | 2017-11-17 | 一种大数据分析流程的执行计划生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711148535.3A CN107885587B (zh) | 2017-11-17 | 2017-11-17 | 一种大数据分析流程的执行计划生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885587A CN107885587A (zh) | 2018-04-06 |
CN107885587B true CN107885587B (zh) | 2018-12-07 |
Family
ID=61777380
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711148535.3A Active CN107885587B (zh) | 2017-11-17 | 2017-11-17 | 一种大数据分析流程的执行计划生成方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885587B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110795229A (zh) * | 2018-08-03 | 2020-02-14 | 上海小渔数据科技有限公司 | 用于提供算力支持的数据处理方法及装置 |
CN109255001A (zh) * | 2018-08-31 | 2019-01-22 | 阿里巴巴集团控股有限公司 | 接口实例库的维护方法及装置、电子设备 |
CN111414226A (zh) * | 2019-01-07 | 2020-07-14 | 北京智融网络科技有限公司 | 一种任务沙箱的建立方法和系统 |
CN110888720A (zh) * | 2019-10-08 | 2020-03-17 | 北京百度网讯科技有限公司 | 任务处理方法、装置、计算机设备及存储介质 |
CN111506402B (zh) * | 2020-03-31 | 2023-06-27 | 上海氪信信息技术有限公司 | 面向机器学习建模的计算机任务调度方法、装置、设备及介质 |
CN111581207B (zh) * | 2020-04-13 | 2023-12-29 | 深圳市云智融科技有限公司 | Azkaban项目的文件生成方法、装置及终端设备 |
CN113672358B (zh) * | 2020-05-15 | 2024-10-18 | 北京沃东天骏信息技术有限公司 | 定时任务处理方法及装置、系统、电子设备和存储介质 |
CN112269648B (zh) * | 2020-11-13 | 2024-05-31 | 北京轩宇信息技术有限公司 | 一种多阶段程序分析的并行任务分配方法及装置 |
CN112748997A (zh) * | 2021-01-20 | 2021-05-04 | 北京明略昭辉科技有限公司 | 一种工作流的调度方法及系统 |
CN113127096A (zh) * | 2021-04-27 | 2021-07-16 | 上海商汤科技开发有限公司 | 任务处理方法和装置、电子设备、存储介质 |
CN113918126B (zh) * | 2021-09-14 | 2022-06-10 | 北京柏睿数据技术股份有限公司 | 一种基于图算法的ai建模流程编排方法和系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077083A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务处理的方法及系统 |
CN103077084A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务控制的方法及系统 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106815071A (zh) * | 2017-01-12 | 2017-06-09 | 上海轻维软件有限公司 | 基于有向无环图的大数据作业调度系统 |
CN106814994A (zh) * | 2017-01-20 | 2017-06-09 | 哈尔滨工业大学 | 一种面向大数据的并行系统优化方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20150017052A (ko) * | 2013-08-05 | 2015-02-16 | 한국전자통신연구원 | 워크플로우의 실행 방법 및 시스템 |
-
2017
- 2017-11-17 CN CN201711148535.3A patent/CN107885587B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077083A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务处理的方法及系统 |
CN103077084A (zh) * | 2013-01-09 | 2013-05-01 | 苏州亿倍信息技术有限公司 | 一种任务控制的方法及系统 |
CN105718244A (zh) * | 2016-01-18 | 2016-06-29 | 上海交通大学 | 一种流水化数据洗牌传输的Spark任务调度与执行方法 |
CN106815071A (zh) * | 2017-01-12 | 2017-06-09 | 上海轻维软件有限公司 | 基于有向无环图的大数据作业调度系统 |
CN106814994A (zh) * | 2017-01-20 | 2017-06-09 | 哈尔滨工业大学 | 一种面向大数据的并行系统优化方法 |
Also Published As
Publication number | Publication date |
---|---|
CN107885587A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885587B (zh) | 一种大数据分析流程的执行计划生成方法 | |
CN110928772B (zh) | 一种测试方法及装置 | |
CN105843703B (zh) | 创建工作流以解决至少一个系统问题的方法和系统 | |
US8949166B2 (en) | Creating and processing a data rule for data quality | |
CN110088749A (zh) | 自动本体生成 | |
US10891443B2 (en) | Message tone evaluation between entities in an organization | |
CN107341194A (zh) | 一种企业重名人区分方法及装置 | |
JP2011507125A (ja) | 複数のコンポーネントを具備するシステムの故障モード影響解析の支援 | |
US20170171097A1 (en) | System and user interface for coordinating distributed workflow between multiple computing systems | |
CN109743346A (zh) | 会话流程配置方法、装置及计算机可读存储介质 | |
CN108959374A (zh) | 数据存储方法、装置及电子设备 | |
US20240273389A1 (en) | Artificial intelligence system providing interactive model interpretation and enhancement tools | |
US20170278043A1 (en) | Task handling in a master data management system | |
US11775490B2 (en) | Enterprise data flow lineage from enterprise data testing metadata | |
WO2000054186A1 (en) | Financial forecasting system and method for risk assessment and management | |
CN113627816A (zh) | 一种评估管理方法、装置、电子设备及存储介质 | |
US10725877B2 (en) | System, method and computer program product for performing a data protection operation | |
CN109815118A (zh) | 数据库管理方法及装置、电子设备和计算机可读存储介质 | |
CN114297052A (zh) | 测试数据生成方法及装置 | |
US10387554B1 (en) | Applying matching data transformation information based on a user's editing of data within a document | |
CN110457705A (zh) | 一种兴趣点数据处理方法、装置、设备和存储介质 | |
CN116360761B (zh) | 基于数据标签的私域和公域自动化营销方法及系统 | |
US20220075783A1 (en) | Dynamically detecting and correcting errors in queries | |
CN116450847A (zh) | 企业信用评估方法、装置、电子设备及可读存储介质 | |
Brula | From Monolith to Serverless Microservices Migration |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CB03 | Change of inventor or designer information |
Inventor after: Long Mingsheng Inventor after: Pei Zhongyi Inventor after: Wang Jianmin Inventor after: Sun Jiaguang Inventor after: Huang Xiangdong Inventor before: Wang Jianmin Inventor before: Long Mingsheng Inventor before: Sun Jiaguang Inventor before: Pei Zhongyi Inventor before: Huang Xiangdong |
|
CB03 | Change of inventor or designer information |