CN110891083A - 一种Gaia中支持多作业并行执行的代理方法 - Google Patents
一种Gaia中支持多作业并行执行的代理方法 Download PDFInfo
- 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
Links
- PFFIDZXUXFLSSR-UHFFFAOYSA-N 1-methyl-N-[2-(4-methylpentan-2-yl)-3-thienyl]-3-(trifluoromethyl)pyrazole-4-carboxamide Chemical compound S1C=CC(NC(=O)C=2C(=NN(C)C=2)C(F)(F)F)=C1C(C)CC(C)C PFFIDZXUXFLSSR-UHFFFAOYSA-N 0.000 title claims abstract description 39
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000013468 resource allocation Methods 0.000 claims abstract description 8
- 230000000903 blocking effect Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 5
- 238000005457 optimization Methods 0.000 description 9
- 238000007405 data analysis Methods 0.000 description 4
- 230000004927 fusion Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000005111 flow chemistry technique Methods 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000009471 action Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000002688 persistence Effects 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 230000033772 system development Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
- H04L67/562—Brokering 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虽然高效,但是有一些可以优化的空间。在多用户提交作业的时候,可能会有一些公共的行为,较为费时;也有一些占用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的集合类的对象中,获得合并后的作业执行计划,即为合并后的作业,由合并模块输出。
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)
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)
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 |
-
2019
- 2019-11-05 CN CN201911070906.XA patent/CN110891083B/zh active Active
Patent Citations (3)
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)
Title |
---|
丁凡: "云环境中高性能计算应用的关键问题研究", 《中国博士学位论文全文数据库》 * |
Cited By (4)
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 | |
US9098326B1 (en) | Evolving parallel system to automatically improve the performance of multiple concurrent tasks on large datasets | |
CN111324445B (zh) | 一种任务调度模拟*** | |
Ju et al. | iGraph: an incremental data processing system for dynamic graph | |
CN110716744A (zh) | 一种数据流处理方法、***和计算机可读存储介质 | |
CN106970880A (zh) | 一种分布式自动化软件测试方法及*** | |
CN110891083B (zh) | 一种Gaia中支持多作业并行执行的代理方法 | |
US7444350B1 (en) | Method and apparatus for processing management information | |
Toader et al. | Graphless: Toward serverless graph processing | |
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 | |
CN116775041B (zh) | 基于流计算和rete算法的实时决策引擎实现方法 | |
CN113608858A (zh) | 一种基于MapReduce架构的数据同步用块任务执行*** | |
CN114089889A (zh) | 模型训练方法、装置以及存储介质 | |
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卡管理方法、***及存储介质 | |
CN117827619B (zh) | 异构算力的耗时预测仿真方法、装置、设备、介质及*** | |
CN110795256B (zh) | 一种Gaia***中基于分布式环境下的消息传输方法 | |
CN107766442A (zh) | 一种海量数据关联规则挖掘方法及*** | |
CN114565098A (zh) | 一种量子计算模拟多节点任务调度方法及设备 | |
CN116627645A (zh) | 云端混合加速器的调度方法、计算机设备及存储介质 | |
Yasuda et al. | A distributed algorithms simulator in the interleaving model |
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 |