CN110891083A - 一种Gaia中支持多作业并行执行的代理方法 - Google Patents

一种Gaia中支持多作业并行执行的代理方法 Download PDF

Info

Publication number
CN110891083A
CN110891083A CN201911070906.XA CN201911070906A CN110891083A CN 110891083 A CN110891083 A CN 110891083A CN 201911070906 A CN201911070906 A CN 201911070906A CN 110891083 A CN110891083 A CN 110891083A
Authority
CN
China
Prior art keywords
jobs
job
gaia
merging
parallelism
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.)
Granted
Application number
CN201911070906.XA
Other languages
English (en)
Other versions
CN110891083B (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.)
Beijing Institute of Technology BIT
Original Assignee
Beijing Institute of Technology BIT
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 Beijing Institute of Technology BIT filed Critical Beijing Institute of Technology BIT
Priority to CN201911070906.XA priority Critical patent/CN110891083B/zh
Publication of CN110891083A publication Critical patent/CN110891083A/zh
Application granted granted Critical
Publication of CN110891083B publication Critical patent/CN110891083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/562Brokering proxy services

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)

Abstract

本发明提供的一种Gaia中支持多作业并行执行的代理方法,在在群的每个节点中Gaia系统内均构建Netty客户端;在主节点上Gaia系统内基于Netty的代理框架构建一个代理端;可以实现在作业收集的过程中,多个客户端与代理端进行独立通信,解决了因物理机不同导致Gaia作业无法互通提交的问题;代理端在接收到作业之后,通过一定的执行多作业的Slot资源分配策略取待合并的作业,对作业合并后再进行执行,该方法使得当前Slot数量能够被最大程度地利用,执行最多的执行计划计划,增大一次作业执行的吞吐量。

Description

一种Gaia中支持多作业并行执行的代理方法
技术领域
本发明涉及系统开发技术领域,具体涉及一种Gaia中支持多作业并行执行的代理方法。
背景技术
Gaia系统是一个面向多计算模型混合并存的高时效、可扩展的新一代大数据分析系统。在自适应、可伸缩的大数据存储、批流融合大数据计算、高维大规模机器学习和高时效大数据智能交互向导等大数据分析系统的几个核心层面,解决一系列关键技术问题,构建自主可控的高时效、可伸缩的新一代大数据分析系统,掌握国际领先的大数据分析系统核心技术。
Gaia系统针对批流混合任务具有全周期多尺度优化和统一计算引擎。现有大数据计算系统或依托自身计算引擎模拟另一类框架的行为,或定义一套通用接口屏蔽底层计算引擎的差异,对批流融合支持较弱。同时,其优化大多位于执行的特定时期或特定层级,且针对高复杂性任务的优化能力不足。针对以上问题,Gaia系统创新性地开发了基于统一计算引擎和全周期多尺度优化的高性能批流融合大数据计算技术。该技术为批流融合处理提供统一表达逻辑支持,通过统一表达建模融合批流处理的计算模型、数据模型、变换模型和动作模型,实现批、流处理的真正融合。针对作业的多样性、持久性、迭代性等特点,提供面向多作业、多任务、迭代计算、持久计算等优化策略,优化针对性更强。同时,提供执行前和执行中的全周期优化,并细分为作业级、任务级、变换级等多个尺度,以实现极速响应和海量吞吐。
在处理用户作业方面,Gaia虽然高效,但是有一些可以优化的空间。在多用户提交作业的时候,可能会有一些公共的行为,较为费时;也有一些占用CPU、任务槽的时间较长的作业。在占用的期间可以将等待的作业整合。即当前Gaia的执行过程用户之间提交的作业无法互通,这就导致了相似的作业不能由已得到的结果来优化执行时间。当很多相似的需求到达的时候,Gaia也是串行执行这些业务逻辑。而单个用户如果占满了资源,剩下的作业只能通过串行等待的方式来等待执行,这也是低效的方式,有很大的优化空间。
因此目前缺少一种Gaia中的多作业并行执行的方法。
发明内容
有鉴于此,本发明提供了一种Gaia中支持多作业并行执行的代理方法,能够实现Gaia系统中的多作业并行执行。
为达到上述目的,本发明的技术方案为:一种Gaia中支持多作业并行执行的代理方法,该方法运行在Gaia系统中,其中构建一个集群,集群包括至少一个主节点和至少一个从节点;每个节点中均运行Gaia系统。
在集群的每个节点中Gaia系统内均构建Netty客户端;在主节点上Gaia系统内基于Netty的代理框架构建一个代理端;每个客户端与代理端进行独立通信。
该方法包括如下步骤:
集群中的所有节点均向主节点提交作业,送入代理端;作业中带有Gaia作业文件。
客户端取作业中的文件路径初始化选项信息和用户程序信息Program,发送给代理端。
客户端获取作业中的作业执行计划,对作业执行计划进行属性拆解,依据拆解得到的属性对作业执行计划进行传输,传输至代理端;作业执行计划中包括如下属性:集合形式的数据终端、键值对形式的缓存文件、执行配置信息以及作业名称。
代理端根据文件路径初始化选项信息构建作业提交对象client,并依据用户程序信息Program,对作业提交对象client进行初始化配置。
作业提交对象client用于完成作业的提交执行。
代理端接收到属性之后,整合为一个作业执行计划。
主节点上运行作业管理器,用于对作业进行Slot资源分配并执行;作业管理器上具备设定数量的物力资源槽Slot,用于执行作业。
代理端统计接收到的作业的数量,当作业的数量超过经验阈值时,计算所有接收到的作业的总并行度,若所有接收到的作业的总并行度未超过作业管理器上空闲Slot的总数,则将所有接收到的作业转入合并模块进行合并。
若所有接收到的作业的总并行度超过作业管理器上空闲Slot的总数,则按照并行度由低到高为所有接收到的作业进行排序,按照排序顺序选取作业,所选取作业的并行度之和不超过作业管理器上空闲Slot的总数,将所选取作业转入合并模块进行合并。
合并模块对转入其中的作业中,将并行度相同的作业合并,得到合并后的作业;合并模块输出合并后的作业通过作业提交对象client送入作业管理器进行Slot资源分配并执行。
进一步地,若所有接收到的作业的总并行度超过作业管理器上空闲Slot的总数,则按照并行度由低到高为所有接收到的作业进行排序,按照排序顺序选取作业,所选取作业的并行度之和不超过作业管理器上空闲Slot的总数,将所选取作业转入合并模块进行合并;
还包括:
所有接收到的作业中,没有被选取的作业放入一个阻塞队列中,等待作业管理器将所有合并后的作业执行完成并返回执行结果后,将阻塞队列的作业取出转入合并模块进行合并。
进一步地,合并模块对转入其中的作业中,将并行度相同的作业合并,具体为:
对于合并度相同的作业,取其作业执行计划中的类加载器和数据终端集合,将所有的数据终端放入一个新的数据终端集合中,再重新创建ClassLoader类加载器的集合类,将合并度相同的作业的作业执行计划中的类加载器的依赖文件全部放入ClassLoader的集合类的对象中,获得合并后的作业执行计划,即为合并后的作业,由合并模块输出。
有益效果:
本发明提供的一种Gaia中支持多作业并行执行的代理方法,在在群的每个节点中Gaia系统内均构建Netty客户端;在主节点上Gaia系统内基于Netty的代理框架构建一个代理端;可以实现在作业收集的过程中,多个客户端与代理端进行独立通信,解决了因物理机不同导致Gaia作业无法互通提交的问题;代理端在接收到作业之后,通过一定的执行多作业的Slot资源分配策略取待合并的作业,对作业合并后再进行执行,该方法使得当前Slot数量能够被最大程度地利用,执行最多的执行计划计划,增大一次作业执行的吞吐量。
附图说明
图1为本发明提供的Gaia中支持多作业并行执行的代理方法流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种Gaia中支持多作业并行执行的代理方法,其特征在于,该方法运行在Gaia系统中,其中构建一个集群,集群包括至少一个主节点和至少一个从节点;每个节点中均运行Gaia系统。
在集群的每个节点中Gaia系统内均构建Netty客户端;在主节点上Gaia系统内基于Netty的代理框架构建一个代理端;每个客户端与代理端进行独立通信;如图1所示。
该方法流程如图1所示,包括如下步骤:
S1、集群中的所有节点均向主节点提交作业,送入代理端;作业中带有用户写好的Gaia程序和依赖的作业文件。
S2、客户端取作业中的文件路径初始化选项信息和用户程序信息Program,发送给代理端。
代理端在作业收集的过程中,多个客户端与代理端的通信独立。即使收集到了一个传输的作业,在代理端的数据处理方法中作业之间的关系依然是独立的,因此在Netty代理端加入全局变量修饰的集合类,将收到的作业存放进入这个集合类中。
S3、客户端获取作业中的作业执行计划,对作业执行计划进行属性拆解,依据拆解得到的属性对作业执行计划进行传输,传输至代理端。
传输执行计划之前首先要将其转换为可网络传输的字节对象,然而执行计划无法直接转换为可以传输的字节,因此要拆解属性,依据执行计划中的属性进行传输。
执行计划中的属性包含以下这些内容:
集合形式的数据终端,其中包含了初始大小为4的数据终端属性;
键值对形式的缓存文件,键为文件的名称,值为文件的路径;
执行配置信息:执行作业的配置信息,其中包含了采用的执行策略,以哪种方式重启的重启策略等;
最后是用户作业的作业名称。
S4、代理端根据文件路径初始化选项信息构建作业提交对象client,并依据用户程序信息Program,对作业提交对象client进行初始化配置。
文件路径初始化选项信息是作业执行的必要条件,通过该信息可以构建作业提交对象client,作业提交对象client用于将作业提交至作业管理器执行。
作业提交对象中含有的一些初始化配置,是根据用户处理的Gaia作业解析后获得用户程序信息Program来配置的。
S5、代理端接收到属性之后,整合为一个作业执行计划。以上的属性分开传输,代理端按照分段的数据进行接收,再重构为一个用户执行计划,以达到多个对象的整合。
S6、主节点上运行作业管理器,用于对作业进行Slot资源分配并执行;作业管理器上具备设定数量的物理资源槽Slot,用于执行作业。
S7、代理端统计接收到的作业的数量,具体地可以在代理端的外部使用一个全局变量,统计收集到作业数量。当作业的数量超过经验阈值时,计算所有接收到的作业的总并行度,若所有接收到的作业的总并行度未超过作业管理器上空闲Slot的总数,则将所有接收到的作业转入合并模块进行合并。
若所有接收到的作业的总并行度超过作业管理器上空闲Slot的总数,则按照并行度由低到高为所有接收到的作业进行排序,按照排序顺序选取作业,所选取作业的并行度之和不超过作业管理器上空闲Slot的总数,将所选取作业转入合并模块进行合并。
该步骤还包括:
所有接收到的作业中,没有被选取的作业放入一个阻塞队列中,等待作业管理器将所有合并后的作业执行完成并返回执行结果后,再将阻塞队列的作业取出转入合并模块进行合并。这样解决了高并行度的作业长期得不到执行的缺点,之后代理端继续接受客户端发来的作业,并执行步骤6。
S7、合并模块对转入其中的作业中,将并行度相同的作业合并,得到合并后的作业;合并模块输出合并后的作业通过作业提交对象client送入作业管理器进行Slot资源分配并执行。
合并模块的合并过程具体为:对于合并度相同的作业,取其作业执行计划中的类加载器和数据终端集合,将所有的数据终端放入一个新的数据终端集合中,再重新创建ClassLoader类加载器的集合类,将合并度相同的作业的作业执行计划中的类加载器的依赖文件全部放入ClassLoader的集合类的对象中,获得合并后的作业执行计划,即为合并后的作业,由合并模块返回。
综上,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种Gaia中支持多作业并行执行的代理方法,其特征在于,该方法运行在Gaia系统中,其中构建一个集群,所述集群包括至少一个主节点和至少一个从节点;每个节点中均运行Gaia系统;
在集群的每个节点中Gaia系统内均构建Netty客户端;在主节点上Gaia系统内基于Netty的代理框架构建一个代理端;每个客户端与代理端进行独立通信;
该方法包括如下步骤:
所述集群中的所有节点均向主节点提交作业,送入代理端;所述作业中带有Gaia作业文件;
所述客户端取所述作业中的文件路径初始化选项信息和用户程序信息Program,发送给代理端;
所述客户端获取所述作业中的作业执行计划,对作业执行计划进行属性拆解,依据拆解得到的属性对作业执行计划进行传输,传输至代理端;所述作业执行计划中包括如下属性:集合形式的数据终端、键值对形式的缓存文件、执行配置信息以及作业名称;
所述代理端根据所述文件路径初始化选项信息构建作业提交对象client,并依据所述用户程序信息Program,对所述作业提交对象client进行初始化配置;
所述作业提交对象client用于完成作业的提交执行;
所述代理端接收到所述属性之后,整合为一个作业执行计划;
所述主节点上运行作业管理器,用于对作业进行Slot资源分配并执行;所述作业管理器上具备设定数量的物力资源槽Slot,用于执行所述作业;
所述代理端统计接收到的作业的数量,当作业的数量超过经验阈值时,计算所有接收到的作业的总并行度,若所述所有接收到的作业的总并行度未超过所述作业管理器上空闲Slot的总数,则将所有接收到的作业转入合并模块进行合并;
若所述所有接收到的作业的总并行度超过所述作业管理器上空闲Slot的总数,则按照并行度由低到高为所有接收到的作业进行排序,按照排序顺序选取作业,所选取作业的并行度之和不超过所述作业管理器上空闲Slot的总数,将所选取作业转入合并模块进行合并;
所述合并模块对转入其中的作业中,将并行度相同的作业合并,得到合并后的作业;合并模块输出合并后的作业通过作业提交对象client送入所述作业管理器进行Slot资源分配并执行。
2.如权利要求1所述的方法,其特征在于,若所述所有接收到的作业的总并行度超过所述作业管理器上空闲Slot的总数,则按照并行度由低到高为所有接收到的作业进行排序,按照排序顺序选取作业,所选取作业的并行度之和不超过所述作业管理器上空闲Slot的总数,将所选取作业转入合并模块进行合并;
还包括:
所有接收到的作业中,没有被选取的作业放入一个阻塞队列中,等待所述作业管理器将所有合并后的作业执行完成并返回执行结果后,将所述阻塞队列的作业取出转入合并模块进行合并。
3.如权利要求1或2所述的方法,其特征在于,所述合并模块对转入其中的作业中,将并行度相同的作业合并,具体为:
对于合并度相同的作业,取其作业执行计划中的类加载器和数据终端集合,将所有的数据终端放入一个新的数据终端集合中,再重新创建ClassLoader类加载器的集合类,将合并度相同的作业的作业执行计划中的类加载器的依赖文件全部放入ClassLoader的集合类的对象中,获得合并后的作业执行计划,即为合并后的作业,由合并模块输出。
CN201911070906.XA 2019-11-05 2019-11-05 一种Gaia中支持多作业并行执行的代理方法 Active CN110891083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911070906.XA CN110891083B (zh) 2019-11-05 2019-11-05 一种Gaia中支持多作业并行执行的代理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911070906.XA CN110891083B (zh) 2019-11-05 2019-11-05 一种Gaia中支持多作业并行执行的代理方法

Publications (2)

Publication Number Publication Date
CN110891083A true CN110891083A (zh) 2020-03-17
CN110891083B CN110891083B (zh) 2020-12-04

Family

ID=69746881

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911070906.XA Active CN110891083B (zh) 2019-11-05 2019-11-05 一种Gaia中支持多作业并行执行的代理方法

Country Status (1)

Country Link
CN (1) CN110891083B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256705A (zh) * 2020-11-13 2021-01-22 北京理工大学 一种Gaia系统中的多表连接优化方法
CN113835896A (zh) * 2021-09-29 2021-12-24 东北大学 一种Gaia系统中面向迭代计算的并行度动态调整方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107577805A (zh) * 2017-09-26 2018-01-12 华南理工大学 一种面向日志大数据分析的业务服务系统
US20180081738A1 (en) * 2013-06-28 2018-03-22 International Business Machines Corporation Framework to improve parallel job workflow
US20190044883A1 (en) * 2018-01-11 2019-02-07 Intel Corporation NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180081738A1 (en) * 2013-06-28 2018-03-22 International Business Machines Corporation Framework to improve parallel job workflow
CN107577805A (zh) * 2017-09-26 2018-01-12 华南理工大学 一种面向日志大数据分析的业务服务系统
US20190044883A1 (en) * 2018-01-11 2019-02-07 Intel Corporation NETWORK COMMUNICATION PRIORITIZATION BASED on AWARENESS of CRITICAL PATH of a JOB

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
丁凡: "云环境中高性能计算应用的关键问题研究", 《中国博士学位论文全文数据库》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112256705A (zh) * 2020-11-13 2021-01-22 北京理工大学 一种Gaia系统中的多表连接优化方法
CN112256705B (zh) * 2020-11-13 2022-11-01 北京理工大学 一种Gaia系统中的多表连接优化方法
CN113835896A (zh) * 2021-09-29 2021-12-24 东北大学 一种Gaia系统中面向迭代计算的并行度动态调整方法
CN113835896B (zh) * 2021-09-29 2024-03-22 东北大学 一种Gaia系统中面向迭代计算的并行度动态调整方法

Also Published As

Publication number Publication date
CN110891083B (zh) 2020-12-04

Similar Documents

Publication Publication Date Title
US11570034B2 (en) Cluster computing
Zhang et al. imapreduce: A distributed computing framework for iterative computation
US9098326B1 (en) Evolving parallel system to automatically improve the performance of multiple concurrent tasks on large datasets
CN110716744A (zh) 一种数据流处理方法、系统和计算机可读存储介质
Ju et al. iGraph: an incremental data processing system for dynamic graph
CN110308984B (zh) 一种用于处理地理分布式数据的跨集群计算系统
CN106970880A (zh) 一种分布式自动化软件测试方法及系统
CN110891083B (zh) 一种Gaia中支持多作业并行执行的代理方法
US7444350B1 (en) Method and apparatus for processing management information
Toader et al. Graphless: Toward serverless graph processing
US20230351145A1 (en) Pipelining and parallelizing graph execution method for neural network model computation and apparatus thereof
CN100462956C (zh) 用于在计算系统上加载程序的方法和系统
Sánchez et al. Agent-based platform to support the execution of parallel tasks
Kaler et al. Communication-efficient graph neural networks with probabilistic neighborhood expansion analysis and caching
CN113608858A (zh) 一种基于MapReduce架构的数据同步用块任务执行系统
Rajasekaran et al. Parallel algorithms for relational coarsest partition problems
CN110868461B (zh) 一种Gaia集群中面向节点间异构带宽的数据分发方法
Zeliu et al. MapReduce rationality verification based on object Petri net
CN111290855A (zh) 分布式环境中多gpu服务器的gpu卡管理方法、系统及存储介质
CN110795256B (zh) 一种Gaia系统中基于分布式环境下的消息传输方法
CN107766442A (zh) 一种海量数据关联规则挖掘方法及系统
CN114565098A (zh) 一种量子计算模拟多节点任务调度方法及设备
CN116627645A (zh) 云端混合加速器的调度方法、计算机设备及存储介质
Yasuda et al. A distributed algorithms simulator in the interleaving model
CN117992120A (zh) 一种桌面应用程序的机器人自动化控制方法和系统

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