CN114489579B - 一种无感知大数据计算中间件的实现方法 - Google Patents

一种无感知大数据计算中间件的实现方法 Download PDF

Info

Publication number
CN114489579B
CN114489579B CN202111628624.4A CN202111628624A CN114489579B CN 114489579 B CN114489579 B CN 114489579B CN 202111628624 A CN202111628624 A CN 202111628624A CN 114489579 B CN114489579 B CN 114489579B
Authority
CN
China
Prior art keywords
task
execution
big data
node
request
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
Application number
CN202111628624.4A
Other languages
English (en)
Other versions
CN114489579A (zh
Inventor
刘彦刚
张岩
齐家乐
郭旭东
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casic Wisdom Industrial Development Co ltd
Beijing Institute of Computer Technology and Applications
Original Assignee
Casic Wisdom Industrial Development Co ltd
Beijing Institute of Computer Technology and Applications
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Casic Wisdom Industrial Development Co ltd, Beijing Institute of Computer Technology and Applications filed Critical Casic Wisdom Industrial Development Co ltd
Priority to CN202111628624.4A priority Critical patent/CN114489579B/zh
Publication of CN114489579A publication Critical patent/CN114489579A/zh
Application granted granted Critical
Publication of CN114489579B publication Critical patent/CN114489579B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/425Lexical analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

本发明提供一种无感知大数据计算中间件的实现方法,包括:在上层应用程序和底层计算引擎之间设置无感知大数据计算中间件;无感知大数据计算中间件,包括任务提交模块、任务编排模块和任务执行模块。本发明提供无感知大数据计算中间件,构建于上层应用程序和底层各种计算引擎之间,各种上层应用程序只需要调用无感知大数据计算中间件,不需要关注各类计算引擎的实现过程,即可实现对相应大数据内容的计算处理。因此,降低了对开发人员的能力要求和开发成本。各种上层应用程序之间虽然体系架构不同,但是,可共享同一个无感知大数据计算中间件,以无感知大数据计算中间件作为桥梁,可实现各种上层应用程序之间的信息共享,避免信息孤岛现象。

Description

一种无感知大数据计算中间件的实现方法
技术领域
本发明属于计算机科学技术领域,具体涉及一种无感知大数据计算中间件的实现方法。
背景技术
在现代文明,数据是人们认识和描述世界的主要手段和载体,承载了人类基于数据和信息认识世界的努力和取得的巨大进步。随着人类社会的快速发展,数据以雪崩般的速度迅猛增长,现有的计算机信息技术不能很好的处理和利用这些庞杂数据。“大数据”技术由此而产生,为数据计算处理提供了自动的方法和手段,人类掌握数据、处理数据的能力才实现质的飞跃,推动数据成为继物质、能源之后的又一种重要战略资源。
目前,市场上处理大数据计算的工具烦而多,比较有代表性的大数据计算技术有MapReduce、Spark、Flink、Impala、ElasticSearch等。各种大数据计算技术各有优劣,使用方式上也存在很大的区别,从而导致以下几方面问题:(1)开发成本高。在大数据计算方面,并没有特别成熟的架构,开发人员根据各自的需求,针对一些问题点不断进行创新、改进和修正,再将多个产品整合起来。此种方式要求开发人员自身既需要对每种工具非常熟悉,同时还要求具有挖掘数据价值的能力,在多源异构的复杂环境下,对开发人员能力要求非常高。(2)容易形成信息孤岛。企业中运行各种各样的应用系统,这些应用系统由不同的开发者开发,技术路线、体系架构、遵循的标准均具有较大的差异,因此,每种应用系统均形成一个信息孤岛,需要共享的信息无法在不同应用系统之间交换,造成很多信息的滞后和数据不一致现象。
发明内容
针对现有技术存在的缺陷,本发明提供一种无感知大数据计算中间件的实现方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种无感知大数据计算中间件的实现方法,包括以下步骤:
步骤1,在上层应用程序和底层计算引擎之间设置无感知大数据计算中间件;
所述无感知大数据计算中间件,包括任务提交模块、任务编排模块和任务执行模块;其中,所述任务提交模块具有任务接口;所述任务接口具有任务接口地址;
步骤2,各个所述上层应用程序的任务请求接口,均通过所述任务接口地址,与所述任务接口绑定;
步骤3,各个所述上层应用程序,通过所述任务请求接口,向所述任务接口发送任务请求;其中,所述任务请求携带有任务类型;
步骤4,所述无感知大数据计算中间件的所述任务提交模块,通过所述任务接口接收到来自于所述上层应用程序的任务请求,并将所述任务请求加入到任务队列;
然后,根据所述任务队列中的任务请求的任务类型,确定任务请求的优先级;再按照任务请求的优先级,从所述任务队列中依次选择需执行的任务请求,并将选择到的所述任务请求发送给所述任务编排模块;
步骤5,所述任务编排模块对所述任务请求进行分析,得到任务计算策略;所述任务编排模块对所述任务请求进行编排,得到物理执行树;其中,所述物理执行树存储符合逻辑执行顺序的多个可执行物理任务;
步骤6,所述任务执行模块,根据各个所述可执行物理任务的逻辑关系,以及所述任务计算策略,将各个所述可执行物理任务下发给对应的计算引擎进行任务执行;然后,接收各个所述计算引擎返回的物理任务执行结果,再返回给所述任务编排模块;
步骤7,所述任务编排模块再根据所述可执行物理任务的逻辑关系,对接收到的各个所述物理任务执行结果进行反向编排,得到任务执行总结果,并将所述任务执行总结果提交给所述任务提交模块;
步骤8,所述任务提交模块将所述任务执行总结果,通过任务接口返回给所述上层应用程序。
优选的,步骤3中,所述任务类型根据任务请求基础场景类型划分,包括:交互式任务、常驻式任务和存储型任务。
优选的,步骤5中,所述任务编排模块对所述任务请求进行编排,得到物理执行树,具体包括:
所述任务编排模块依次对所述任务请求执行任务转换操作、任务逻辑编排操作、任务校验操作、任务物理编排操作和任务优化操作,得到最终的物理执行树。
优选的,对所述任务请求执行任务转换操作,具体为:
采用解析器,对所述任务请求进行解析,生成抽象语法树;具体包括:
对所述任务请求进行词法分析,将所述任务请求的字符序列转换为单词序列;
对所述任务请求进行语法分析,将所述单词序列组合成抽象语法树;其中,所述抽象语法树包括三类节点,分别为:Job节点、Stage节点和Task节点;所述Job节点为任务节点;将所述Job节点的处理过程划分为多个阶段,每个阶段对应一个Stage节点,所述Stage节点称为任务阶段节点;每个Stage节点由多个Task节点对应的Task并行执行;其中,所述Task节点为任务运行的最小单位;
所述Job节点和所述Stage节点的属性相互关联;所述Job节点中存储有获取对应Stage节点的方法;所述Stage节点中存储有获取对应Job节点的方法。
优选的,所述任务逻辑编排操作,具体为:
基于所述抽象语法树,将一个所述任务请求,解析为多个执行Task,并根据各个执行Task的逻辑关系,生成逻辑树;
更具体方法为:
对所述抽象语法树的每个节点进行转换,转换为执行Task,包括:
将Job节点解析为Job结束任务JobEndTask和Job开始任务JobStartTask,进而形成一条执行Task;
将Stage节点解析为Stage结束任务StageEndTask和Stage开始任务StageStartTask,进而形成一条执行Task;
将Task节点转换为具体的逻辑任务对象LogicalTask。
优选的,所述任务校验操作,具体为:
对所述逻辑树进行任务安全检查,检验所述逻辑树中的各节点的合法性。
优选的,所述任务物理编排操作,具体为:
将经过任务校验的所述逻辑树,转换为物理执行树,具体为:
将Job结束任务JobEndTask解析为可执行的Job结束任务JobEndExecTask;
将Job开始任务JobStartTask解析为可执行的Job开始任务JobStartExecTask;
将Stage结束任务StageEndTask解析为可执行的Stage结束任务StageEndExecTask;
将Stage开始任务StageStartTask解析为可执行的Stage开始任务StageStartExecTask;
将逻辑任务对象LogicalTask解析为可执行任务ComputationTask。
优选的,所述任务优化操作,包括:
缓存优化:对所述任务物理编排操作得到的物理执行树中的各个可执行Task进行判断,判断其是否以缓存的数据作为该可执行Task的输入,如果是,则调整所述物理执行树,将该可执行Task的输入指向缓存;
优选的,还包括回放优化功能;
将任务请求通过任务编排模块进行编排、通过任务执行模块下发给对应的计算引擎进行任务执行的过程进行记录,形成历史任务执行过程表;
当后续接收到相同的任务请求时,直接通过查找所述历史任务执行过程表,得到对应的计算引擎以及每个可执行任务task,并将各个可执行任务task下发给同样的计算引擎执行。
本发明提供的一种无感知大数据计算中间件的实现方法具有以下优点:
本发明提供一种无感知大数据计算中间件的实现方法,构建于上层应用程序和底层各种计算引擎之间,各种上层应用程序只需要调用本发明提供的无感知大数据计算中间件,不需要关注各类计算引擎的实现过程,即可实现对相应大数据内容的计算处理。因此,降低了对开发人员的能力要求和开发成本。各种上层应用程序之间虽然体系架构不同,但是,可共享同一个无感知大数据计算中间件,以无感知大数据计算中间件作为桥梁,可实现各种上层应用程序之间的信息共享,避免信息孤岛现象。
附图说明
图1为本发明提供的一种无感知大数据计算中间件的整体架构示意图;
图2为本发明提供的任务编排模块的架构示意图;
图3为本发明提供的一种无感知大数据计算中间件的实现方法流程图;
图4为本发明提供的抽象语法树的原理图;
图5为本发明提供的逻辑树的原理图;
图6为本发明提供的物理执行树的原理图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
本发明提供一种无感知大数据计算中间件的实现方法,构建于上层应用程序和底层各种计算引擎之间,各种上层应用程序只需要调用本发明提供的无感知大数据计算中间件,不需要关注各类计算引擎的实现过程,即可实现对相应大数据内容的计算处理。因此,在多源异构的复杂环境下,开发人员不需要针对每种上层应用程序均开发对应的数据处理架构,只需要统一使用无感知大数据计算中间件即可,降低了对开发人员的能力要求和开发成本。另外,各种上层应用程序之间虽然体系架构不同,但是,可共享同一个无感知大数据计算中间件,以无感知大数据计算中间件作为桥梁,可实现各种上层应用程序之间的信息共享,避免信息孤岛现象。
本发明提供一种无感知大数据计算中间件的实现方法,参考图1和图3,包括以下步骤:
步骤1,在上层应用程序和底层计算引擎之间设置无感知大数据计算中间件;
其中,底层计算引擎包括多种不同类型的计算引擎,例如,Spark、Presto、Hive、Shell和Elastic Search等。
所述无感知大数据计算中间件,包括任务提交模块、任务编排模块和任务执行模块;其中,所述任务提交模块具有任务接口;所述任务接口具有任务接口地址;
步骤2,各个所述上层应用程序的任务请求接口,均通过所述任务接口地址,与所述任务接口绑定;
步骤3,各个所述上层应用程序,通过所述任务请求接口,向所述任务接口发送任务请求;其中,所述任务请求携带有任务类型;
具体的,任务请求是上层应用程序实际提交的一个作业,这个作业可以是交互式作业,也可以是常驻式/一次性作业,也可以是存储式作业。所述任务类型根据任务请求基础场景类型划分,包括:交互式任务、常驻式任务和存储型任务等。
步骤4,所述无感知大数据计算中间件的所述任务提交模块,通过所述任务接口接收到来自于所述上层应用程序的任务请求,并将所述任务请求加入到任务队列;
然后,根据所述任务队列中的任务请求的任务类型,确定任务请求的优先级;再按照任务请求的优先级,从所述任务队列中依次选择需执行的任务请求,并将选择到的所述任务请求发送给所述任务编排模块;
具体的,作为通用的大数据计算中间件,其底层支持调用多个计算引擎,其上层支持各种上层应用程序的调用,各个上层应用程序之间的调用方式千差万别。因此,本发明提供简单、统一的调用方式。任务提交模块具有任务接口,用于任务的接收、调度、转发执行请求、生命周期管理服务,并且能把计算引擎的计算结果、日志、进度等返回给调用方(即上层应用程序)。
步骤5,所述任务编排模块对所述任务请求进行分析,得到任务计算策略;所述任务编排模块对所述任务请求进行编排,得到物理执行树;其中,所述物理执行树存储符合逻辑执行顺序的多个可执行物理任务;
任务编排模块是计算中间件中最核心的部分,可以实现调用多个计算引擎和丰富的计算策略支持,可以实现全栈引擎+丰富计算策略的支持,通过对上层应用程序提交的任务进行编排,可以实现对双读、双写、AB等策略类型进行支持。
参考图2,任务编排模块包括:任务转换操作、任务逻辑编排操作、任务校验操作、任务物理编排操作、任务优化操作。下面对每个操作分别详细说明:
(1)任务转换操作
任务转换操作,主要用于将上层应用程序提交的任务请求进行转换,完成对任务请求的检查和补充(包括参数检查、变量补充等),最终生成抽象语法树。
对所述任务请求执行任务转换操作,具体为:
采用解析器,对所述任务请求进行解析,生成抽象语法树;具体包括:
对所述任务请求进行词法分析,将所述任务请求的字符序列转换为单词序列;
对所述任务请求进行语法分析,将所述单词序列组合成抽象语法树;其中,所述抽象语法树包括三类节点,分别为:Job节点、Stage节点和Task节点;所述Job节点为任务节点;将所述Job节点的处理过程划分为多个阶段,每个阶段对应一个Stage节点,所述Stage节点称为任务阶段节点;每个Stage节点由多个Task节点对应的Task并行执行;其中,所述Task节点为任务运行的最小单位,包括两类:第一类Task:通过调用计算引擎,得到Job的最终计算结果,并返回;第二类Task:计算Job中间步骤的结果,并把结果保存到中间的输出文件中。
参考图4,所述Job节点和所述Stage节点的属性相互关联;所述Job节点中存储有获取对应Stage节点的方法;所述Stage节点中存储有获取对应Job节点的方法。
(2)任务逻辑编排操作
任务逻辑编排操作主要用于基于抽象语法树,将抽象语法树转换为逻辑树。
按照不同的计算策略,在编排阶段生成的逻辑树也会不相同。对于普通的交互式计算策略,逻辑编排会将任务解析为一个执行过程,但是对于双读、双写等计算策略下会将任务解析为多个执行过程。
所述任务逻辑编排操作,具体为:
参考图5,基于所述抽象语法树,将一个所述任务请求,解析为多个执行Task,并根据各个执行Task的逻辑关系,生成逻辑树;
更具体方法为:
对所述抽象语法树的每个节点进行转换,转换为执行Task,包括:
将Job节点解析为Job结束任务JobEndTask和Job开始任务JobStartTask,进而形成一条执行Task;
将Stage节点解析为Stage结束任务StageEndTask和Stage开始任务StageStartTask,进而形成一条执行Task;
将Task节点转换为具体的逻辑任务对象LogicalTask。
(3)任务校验操作
在生成可执行的任务之前,需经过任务校验操作。任务校验主要用于校验逻辑编排阶段的逻辑树的合法性,并补充一些必要的信息。
所述任务校验操作,具体为:
对所述逻辑树进行任务安全检查,检验所述逻辑树中的各节点的合法性。
(4)任务物理编排操作
任务物理编排操作,用于对逻辑编排阶段生成的逻辑树转换为对应的物理执行树。
参考图6,所述任务物理编排操作,具体为:
将经过任务校验的所述逻辑树,转换为物理执行树,具体为:
将Job结束任务JobEndTask解析为可执行的Job结束任务JobEndExecTask;
将Job开始任务JobStartTask解析为可执行的Job开始任务JobStartExecTask;
将Stage结束任务StageEndTask解析为可执行的Stage结束任务StageEndExecTask;
将Stage开始任务StageStartTask解析为可执行的Stage开始任务StageStartExecTask;
将逻辑任务对象LogicalTask解析为可执行任务ComputationTask。
经过任务物理编排操作,得到多种不同类型的Task,此时得到的Task是可执行的实体,任务调度的最小单元。每个Task对应一个RDD的分区,也对应任务执行线程池中的一个执行线程。
(5)任务优化操作
任务优化操作通过优化器完成,主要用于优化物理执行树。优化策略主要有以下几种:
(1)缓存优化:
对所述任务物理编排操作得到的物理执行树中的各个可执行Task进行判断,判断其是否以缓存的数据作为该可执行Task的输入,如果是,则调整所述物理执行树,将该可执行Task的输入指向缓存;
(2)资源优化:如果上层应用程序指定提交的队列现在资源很紧张,且该上层应用程序存在其他可用空闲队列,自动进行优化。
(3)参数优化:优化运行时参数或启动参数。
步骤6,所述任务执行模块,根据各个所述可执行物理任务的逻辑关系,以及所述任务计算策略,将各个所述可执行物理任务下发给对应的计算引擎进行任务执行;然后,接收各个所述计算引擎返回的物理任务执行结果,再返回给所述任务编排模块;
任务执行模块用于执行物理执行树中的各个可执行物理任务,支持同步执行和异步执行,执行的过程中通过解析物理执行树进行依赖执行。
步骤7,所述任务编排模块再根据所述可执行物理任务的逻辑关系,对接收到的各个所述物理任务执行结果进行反向编排,得到任务执行总结果,并将所述任务执行总结果提交给所述任务提交模块;
步骤8,所述任务提交模块将所述任务执行总结果,通过任务接口返回给所述上层应用程序。
还包括回放优化功能;
将任务请求通过任务编排模块进行编排、通过任务执行模块下发给对应的计算引擎进行任务执行的过程进行记录,形成历史任务执行过程表;
当后续接收到相同的任务请求时,直接通过查找所述历史任务执行过程表,得到对应的计算引擎以及每个可执行任务task,并将各个可执行任务task下发给同样的计算引擎执行。
具体的,回放优化,主要用于支持回放。即多写时,如果某个集群存在需要回放的任务,先根据任务时延要求,进行一定数量的历史任务执行过程表回放,以便追回。同时对该任务进行关联分析,如果与历史回放任务关联则改为将任务信息写入,不关联则继续执行。
任务再热:
当任务执行失败时,对任务进行再热。再热允许在执行过程中,动态调整物理执行树的执行计划,比如为申请引擎失败的任务发起重新执行等。
下面介绍一个具体实施例:
步骤1:提交任务
上层应用程序调用底层API,将计算逻辑封装到代码,然后编译启动,任务自动提交到计算中间件。
步骤2:任务编排
编排过程中,主要完成对输入的任务请求进行转换生成抽象语法树AST,生成逻辑树、生成物理执行树三个阶段,最终执行物理执行树的可执行物理任务。
整个过程如下:以交互式场景为例,下面以select*from demo的交互式任务为例,可视化各个阶段的树形图。
AST抽象语法树:对上层应用程序提交的任务进行解析后,分别为:Job节点、Stage节点和Task节点;
生成逻辑树:对上述步骤生成的AST抽象语法树进行转换,包含Job/Stage/Task。其中将Job解析为JobEndTask和JobStartTask,将Stage解析为StageEndTask和StageStartTask,以及将Task转换为逻辑任务对象LogicalTask。
生成物理执行树:该树是由优化器将逻辑树优化转换后得到的结构,包含Job/Stage/ExecTask等可执行单元。
其中,将Job解析为JobEndExecTask和JobStartExecTask,将Stage解析为StageEndExecTask和StageStartExecTask,以及将Task转换为可执行任务ComputationTask。
步骤3:执行与再热
通过上述步骤,已经得到可进行解析执行的物理执行树。物理执行树由逻辑任务对象LogicalTask组成,包含整个计算任务的所有执行逻辑。此时,通过解析该物理执行树,计算中间件选择合适的计算引擎,将真正的计算任务发送到底层计算引擎,并监听任务执行状态,返回计算结果。期间如果监听到任务发生异常,则会进行重启该阶段任务,再次计算。
本发明提供一种无感知大数据计算中间件的实现方法,构建于上层应用程序和底层各种计算引擎之间,各种上层应用程序只需要调用本发明提供的无感知大数据计算中间件,不需要关注各类计算引擎的实现过程,即可实现对相应大数据内容的计算处理。因此,降低了对开发人员的能力要求和开发成本。各种上层应用程序之间虽然体系架构不同,但是,可共享同一个无感知大数据计算中间件,以无感知大数据计算中间件作为桥梁,可实现各种上层应用程序之间的信息共享,避免信息孤岛现象。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。

Claims (9)

1.一种无感知大数据计算中间件的实现方法,其特征在于,包括以下步骤:
步骤1,在上层应用程序和底层计算引擎之间设置无感知大数据计算中间件;
所述无感知大数据计算中间件,包括任务提交模块、任务编排模块和任务执行模块;其中,所述任务提交模块具有任务接口;所述任务接口具有任务接口地址;
步骤2,各个所述上层应用程序的任务请求接口,均通过所述任务接口地址,与所述任务接口绑定;
步骤3,各个所述上层应用程序,通过所述任务请求接口,向所述任务接口发送任务请求;其中,所述任务请求携带有任务类型;
步骤4,所述无感知大数据计算中间件的所述任务提交模块,通过所述任务接口接收到来自于所述上层应用程序的任务请求,并将所述任务请求加入到任务队列;
然后,根据所述任务队列中的任务请求的任务类型,确定任务请求的优先级;再按照任务请求的优先级,从所述任务队列中依次选择需执行的任务请求,并将选择到的所述任务请求发送给所述任务编排模块;
步骤5,所述任务编排模块对所述任务请求进行分析,得到任务计算策略;所述任务编排模块对所述任务请求进行编排,得到物理执行树;其中,所述物理执行树存储符合逻辑执行顺序的多个可执行物理任务;
步骤6,所述任务执行模块,根据各个所述可执行物理任务的逻辑关系,以及所述任务计算策略,将各个所述可执行物理任务下发给对应的计算引擎进行任务执行;然后,接收各个所述计算引擎返回的物理任务执行结果,再返回给所述任务编排模块;
步骤7,所述任务编排模块再根据所述可执行物理任务的逻辑关系,对接收到的各个所述物理任务执行结果进行反向编排,得到任务执行总结果,并将所述任务执行总结果提交给所述任务提交模块;
步骤8,所述任务提交模块将所述任务执行总结果,通过任务接口返回给所述上层应用程序。
2.根据权利要求1所述的一种无感知大数据计算中间件的实现方法,其特征在于,步骤3中,所述任务类型根据任务请求基础场景类型划分,包括:交互式任务、常驻式任务和存储型任务。
3.根据权利要求1所述的一种无感知大数据计算中间件的实现方法,其特征在于,步骤5中,所述任务编排模块对所述任务请求进行编排,得到物理执行树,具体包括:
所述任务编排模块依次对所述任务请求执行任务转换操作、任务逻辑编排操作、任务校验操作、任务物理编排操作和任务优化操作,得到最终的物理执行树。
4.根据权利要求3所述的一种无感知大数据计算中间件的实现方法,其特征在于,对所述任务请求执行任务转换操作,具体为:
采用解析器,对所述任务请求进行解析,生成抽象语法树;具体包括:
对所述任务请求进行词法分析,将所述任务请求的字符序列转换为单词序列;
对所述任务请求进行语法分析,将所述单词序列组合成抽象语法树;其中,所述抽象语法树包括三类节点,分别为:Job节点、Stage节点和Task节点;所述Job节点为任务节点;将所述Job节点的处理过程划分为多个阶段,每个阶段对应一个Stage节点,所述Stage节点称为任务阶段节点;每个Stage节点由多个Task节点对应的Task并行执行;其中,所述Task节点为任务运行的最小单位;
所述Job节点和所述Stage节点的属性相互关联;所述Job节点中存储有获取对应Stage节点的方法;所述Stage节点中存储有获取对应Job节点的方法。
5.根据权利要求4所述的一种无感知大数据计算中间件的实现方法,其特征在于,所述任务逻辑编排操作,具体为:
基于所述抽象语法树,将一个所述任务请求,解析为多个执行Task,并根据各个执行Task的逻辑关系,生成逻辑树;
更具体方法为:
对所述抽象语法树的每个节点进行转换,转换为执行Task,包括:
将Job节点解析为Job结束任务JobEndTask和Job开始任务JobStartTask,进而形成一条执行Task;
将Stage节点解析为Stage结束任务StageEndTask和Stage开始任务StageStartTask,进而形成一条执行Task;
将Task节点转换为具体的逻辑任务对象LogicalTask。
6.根据权利要求5所述的一种无感知大数据计算中间件的实现方法,其特征在于,所述任务校验操作,具体为:
对所述逻辑树进行任务安全检查,检验所述逻辑树中的各节点的合法性。
7.根据权利要求5所述的一种无感知大数据计算中间件的实现方法,其特征在于,所述任务物理编排操作,具体为:
将经过任务校验的所述逻辑树,转换为物理执行树,具体为:
将Job结束任务JobEndTask解析为可执行的Job结束任务JobEndExecTask;
将Job开始任务JobStartTask解析为可执行的Job开始任务JobStartExecTask;
将Stage结束任务StageEndTask解析为可执行的Stage结束任务StageEndExecTask;
将Stage开始任务StageStartTask解析为可执行的Stage开始任务StageStartExecTask;
将逻辑任务对象LogicalTask解析为可执行任务ComputationTask。
8.根据权利要求7所述的一种无感知大数据计算中间件的实现方法,其特征在于,所述任务优化操作,包括:
缓存优化:对所述任务物理编排操作得到的物理执行树中的各个可执行Task进行判断,判断其是否以缓存的数据作为该可执行Task的输入,如果是,则调整所述物理执行树,将该可执行Task的输入指向缓存。
9.根据权利要求1所述的一种无感知大数据计算中间件的实现方法,其特征在于,还包括回放优化功能;
将任务请求通过任务编排模块进行编排、通过任务执行模块下发给对应的计算引擎进行任务执行的过程进行记录,形成历史任务执行过程表;
当后续接收到相同的任务请求时,直接通过查找所述历史任务执行过程表,得到对应的计算引擎以及每个可执行任务task,并将各个可执行任务task下发给同样的计算引擎执行。
CN202111628624.4A 2021-12-28 2021-12-28 一种无感知大数据计算中间件的实现方法 Active CN114489579B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111628624.4A CN114489579B (zh) 2021-12-28 2021-12-28 一种无感知大数据计算中间件的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111628624.4A CN114489579B (zh) 2021-12-28 2021-12-28 一种无感知大数据计算中间件的实现方法

Publications (2)

Publication Number Publication Date
CN114489579A CN114489579A (zh) 2022-05-13
CN114489579B true CN114489579B (zh) 2022-11-04

Family

ID=81496851

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111628624.4A Active CN114489579B (zh) 2021-12-28 2021-12-28 一种无感知大数据计算中间件的实现方法

Country Status (1)

Country Link
CN (1) CN114489579B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022007A (zh) * 2016-06-14 2016-10-12 中国科学院北京基因组研究所 面向生物组学大数据计算的云平台系统及方法
CN110704130A (zh) * 2019-10-10 2020-01-17 深圳前海微众银行股份有限公司 一种数据处理方法及装置
CN112256414A (zh) * 2020-10-19 2021-01-22 浪潮天元通信信息系统有限公司 一种连接多种计算存储引擎的方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10558488B2 (en) * 2017-01-06 2020-02-11 International Business Machines Corporation Sharing transaction contexts in an optimized colocation of java and non-java language applications

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106022007A (zh) * 2016-06-14 2016-10-12 中国科学院北京基因组研究所 面向生物组学大数据计算的云平台系统及方法
CN110704130A (zh) * 2019-10-10 2020-01-17 深圳前海微众银行股份有限公司 一种数据处理方法及装置
CN112256414A (zh) * 2020-10-19 2021-01-22 浪潮天元通信信息系统有限公司 一种连接多种计算存储引擎的方法及系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《数据计算中间件技术综述》;润乾软件;《https://blog.csdn.net/raqsoft/article/details/83506850》;20181029;第1-5页 *

Also Published As

Publication number Publication date
CN114489579A (zh) 2022-05-13

Similar Documents

Publication Publication Date Title
JP2738692B2 (ja) 並列化コンパイル方法
Nykiel et al. MRShare: sharing across multiple queries in MapReduce
Kwon et al. Skewtune: mitigating skew in mapreduce applications
Yuan et al. Spark-GPU: An accelerated in-memory data processing engine on clusters
US6009265A (en) Program product for optimizing parallel processing of database queries
US20090172353A1 (en) System and method for architecture-adaptable automatic parallelization of computing code
US8752056B2 (en) Running native code across single or multi-core hybrid processor achitecture
Welivita et al. Managing complex workflows in bioinformatics: an interactive toolkit with gpu acceleration
Wang et al. A framework for distributed data-parallel execution in the Kepler scientific workflow system
Aluko et al. Big SQL systems: an experimental evaluation
CN111221852A (zh) 基于大数据的混合查询处理方法及装置
Kim et al. Scan-sharing for optimizing rdf graph pattern matching on mapreduce
Goncalves et al. Data analytics in the cloud with flexible MapReduce workflows
CN114489579B (zh) 一种无感知大数据计算中间件的实现方法
Chao-Qiang et al. RDDShare: reusing results of spark RDD
CN114969111B (zh) 分布式数据库的逻辑子计划执行方法、装置及系统
CN113220436A (zh) 一种分布式环境下的通用批量作业执行方法及装置
CN111221860A (zh) 基于大数据的混合查询优化方法及装置
Qi et al. Smart contract parallel execution with fine-grained state accesses
Ruan et al. Hymr: a hybrid mapreduce workflow system
Thor et al. Cloudfuice: A flexible cloud-based data integration system
Xu et al. MANA-2.0: A future-proof design for transparent checkpointing of MPI at scale
KR20200124551A (ko) 배치 업무의 대용량 데이터를 처리하기 위한 변환시스템
Fang et al. PaVM: A Parallel Virtual Machine for Smart Contract Execution and Validation
CN114817311B (zh) 应用于GaussDB数据库存储过程的并行计算方法

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