CN102033777B - 基于ice的分布式作业调度引擎 - Google Patents
基于ice的分布式作业调度引擎 Download PDFInfo
- Publication number
- CN102033777B CN102033777B CN2010102860165A CN201010286016A CN102033777B CN 102033777 B CN102033777 B CN 102033777B CN 2010102860165 A CN2010102860165 A CN 2010102860165A CN 201010286016 A CN201010286016 A CN 201010286016A CN 102033777 B CN102033777 B CN 102033777B
- Authority
- CN
- China
- Prior art keywords
- node
- tabulation
- layer
- engine
- computing node
- 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
Images
Abstract
基于ICE的分布式作业调度引擎,采用三层分布式对象的体系结构,分为服务接口层、调度管理层和计算资源层。引擎定义了计算节点队列和可用节点队列,并利用先进先出(FIFO)算法对可用节点队列中的多个计算节点进行分布式的管理,并且能够根据计算节点的负载情况,将计算作业分配给集群内的计算节点。引擎采用ICE中间件技术实现服务端与客户端之间的通讯,可以根据实际应用时引擎的负载情况增删计算节点而不会影响引擎的稳定性,具有容易扩展维护、占用网络带宽和系统资源低、可靠性高等优点。
Description
技术领域
本发明属于计算机领域,涉及一种分布式作业调度引擎。
背景技术
作业调度主要用于分布式计算,包括作业调度算法、与计算节点之间的通讯等方面的内容。目前,大多数作业调度系统采用面向模块化的架构,包含了作业提交模块、作业调度模块、资源管理模块等。各种模块之间是平行对等的关系。这种架构缺乏层次,侧重于作业调度系统的服务端功能,没有包含计算节点,与上层具体应用和具体硬件关系结合过于紧密,不易于在不同应用环境下进行移植。
在与计算节点进行作业控制时,大多数作业调度系统采用中间件技术,如微软公司的DCOM/.net,OMG的CORBA,SUN公司的Java中间件、WebSerices和ICE等。在作业调度方面,DCOM/.net只支持微软公司旗下的WindoWs操作系统,不支持其它平台系统。CORBA规范过于复杂,不易开发、维护和扩展。Java RMI是基于Java的解决方案,与其他语言兼容性差。此外,它们都要求使用特定协议实现客户端与服务端之间的访问,不支持不同平台上的服务之间的互相访问。Web Services是一种新的分布式计算技术,具有传统的组件技术特点,支持不同平台上的服务之间的互操作,在遥感卫星数据处理系统中取得了广泛的应用。但是Web Services占用大量的网络带宽和CPU开销,需要私有化开发平台,还存在安全方面的问题。
发明内容
本发明的技术解决问题是:克服现有技术的不足,提供了一种容易扩展维护、占用网络带宽和系统资源低的基于ICE的分布式作业调度引擎。
本发明的技术解决方案是:基于ICE的分布式作业调度引擎,采用三层分布式对象的体系架构,包括服务接口层、调度管理层和计算资源层,调度管理层和计算资源层之间通过ICE进行通信,服务接口层和调度管理层之间通过接口函数完成作业提交和结果返回,其中:
服务接口层:属于引擎服务端,接收外部输入的计算作业请求,将计算作业请求提交到调度管理层;将调度管理层传来的计算作业处理结果返回给外部;
调度管理层:属于引擎服务端,实时监控计算资源层中各计算节点的负载状态,根据各计算节点的负载情况将服务接口层接收的计算作业请求分配给相关的计算节点进行处理;将计算资源层中各计算节点的计算作业请求处理结果返回给服务接口层;
计算资源层:包含有多个计算节点,各计算节点部署了引擎客户端,服从调度管理层的调度分配,对分配的计算作业请求进行处理并将处理结果返回给调度管理层。
所述的调度管理层包括配置文件、计算节点列表、可用节点列表、作业等待列表、作业分配控制器和节点管理器,其中:
配置文件:存储计算资源层中各计算节点的信息,包括计算节点的名称、地址、最大作业数;
计算节点列表:记录计算资源层中各计算节点的名称、地址、最大作业数,同时实时记录计算节点的可用状态;
可用节点列表:记录处于可用状态的计算节点正在执行作业的参数、占用的作业数和空闲的作业数;
作业等待列表:记录需要等待分配计算节点的计算作业请求;
作业分配控制器:负责对计算作业请求进行分配,当有计算作业请求时,从可用节点列表中取出第一个节点,如果该节点的空闲作业数不为零,将当前的计算作业请求分配给该节点,同时修改该节点的负载情况,将该节点的已占用作业数增加,空闲作业数减小,并把该节点排到可用节点列表的末尾,如果该节点的空闲作业数为零,则直接将该节点排到可用节点列表的末尾,依次类推从可用节点列表中读取下一节点进行处理;当计算作业请求处理完成后,从可用节点列表中将处理该计算作业请求的计算节点找出,修改该节点的负载情况,同时将该节点的已占用作业数减小,空闲作业数增加;如果可用节点列表中的所有节点都没有空闲作业资源,则将该计算作业请求送入作业等待列表排队等待,直到可用节点队列中的作业节点释放出空闲的作业资源;
节点管理器:将配置文件存储的信息送至计算节点列表和可用节点列表,对各计算节点定时发送监控请求,根据计算节点是否对监控请求发出回应判断计算节点状态正常或者故障并对计算节点列表和可用节点列表进行实时更新。
本发明与现有技术相比的优点在于:本发明作业调度引擎采用了三层分布式对象的体系结构,引擎可以对由多个计算节点组成的计算集群进行分布式的管理,并且能够根据计算节点的负载情况,将计算作业分配给集群内的计算节点。引擎具有唯一的外部作业接口,所有计算节点对外表现为一体,用户不需要关心作业运行在哪个计算节点。采用ICE中间件实现计算节点之间的通讯,可以实现根据实际应用时引擎的负载情况增删节点而不会影响引擎的稳定性,以保证引擎具有可扩展性和提高引擎的可靠性。引擎具有容易扩展维护、占用网络带宽和系统资源低等优点。
附图说明
图1为本发明调度引擎的结构图;
图2为本发明调度管理层的作业调度原理图;
图3为本发明引擎的工作流程图。
具体实施方式
ICE是近几年在CORBA技术基础上发展出的一个新中间件技术,有着跨平台性好,性能高,安全性高,易于开发和维护等优点。ICE采用客户-服务端机制,可以运行在不同的操作系统和机器架构上,并且支持多种网络技术进行通信。客户端和服务端的底层核心提供网络通信的环境支持,包含了协议、线程、字节等与网络相关的内容。
如图1所示,本发明作业调度引擎采用三层分布式对象的体系架构,即服务接口层、调度管理层和计算资源层,每个层提供不同的功能,不同层之间相互独立。调度管理层和计算资源层之间通过ICE进行通信,服务接口层和调度管理层之间通过接口函数完成作业提交和结果返回。服务接口层是外部计算作业与引擎交互的唯一入口,负责接收外部的计算作业提交请求和将作业提交到调度管理层,在作业处理完成后将结果返回给外部。调度管理层具有作业管理调度和节点监控的功能,负责根据计算节点的负载情况向节点分配计算作业和监测各个计算节点的运行状态。计算资源层负责承担请求作业的计算任务,由多个计算节点组成。引擎使用ICE的API对按照ICE规范定义的Slice语言生成代理和骨架。代理运行在引擎服务端,负责向计算节点上的应用程序发起调用请求,骨架运行在引擎客户端,是代理在服务端的等价物,负责在ICE和应用程序之间进行线程控制。也就是说,本发明作业调度引擎分为服务端和客户端两个部分,服务端包含服务接口层和调度管理层,运行在管理节点上,客户端运行在计算资源层中的所有计算节点上。引擎利用ICE来实现服务端和客户端之间的网络通信,完成远程调用计算节点上的应用程序和监测计算节点的运行状态。
作为引擎的核心,调度管理层需要完成作业分配和节点管理两个核心功能。调度管理层内部维护三个列表,分别是计算节点列表、可用节点列表和作业等待列表。计算节点列表记录了计算资源层中的所有计算节点信息,包括节点的运行状态、可运行的最大作业数和地址信息等。可用节点列表记录了当前正在运行的计算节点信息,包括已经占用的作业数、空闲的作业数和占用作业参数等。作业等待列表记录了需要等待分配节点的计算作业。
本发明引擎采用FIFO算法来管理计算节点中的可用节点列表,如图2所示。FIFO算法在作业分配控制器中进行,通过作业分配控制器对可用节点队列进行管理,能够根据计算节点的负载情况对并发的计算作业进行调度。当有作业请求时,调度管理层从可用节点列表中取出第一个节点,将该作业请求分配给该节点。同时,修改该节点的负载情况,将该节点的已占用作业数增加和空闲作业数减小,把该节点排到队列末尾。当请求作业处理完成后,根据节点返回的结果信息从可用节点列表中将该节点找出,修改该节点的负载情况,将刚才所占用的作业资源释放。如果可用节点列表中的第一个节点没有空闲的作业资源,则直接将其放回队列末尾,取第二个节点,以此类推。如果可用节点列表中的所有节点都没有空闲作业资源,则将该请求的作业放入到一个作业等待列表中,直到可用节点队列中的节点释放出空闲的作业资源。
为了提高引擎的效率,在有新的作业请求时,引擎先查询作业等待列表中是否有正在等待节点资源的作业。如果没有等待的作业,则引擎从可用节点列表中查询具有空闲资源的节点,并将该作业分配给取出的节点。如果尚有等待的作业,则引擎直接将该作业排入作业等待列表。
计算资源层中的所有计算节点组成一个计算集群,彼此之间互相备份,但是节点之间的联系是松耦合的,可以实现根据实际应用时引擎的负载情况增删节点而不会影响引擎的稳定性,以保证引擎具有可扩展性。当有新的计算节点加入或者移出计算节点时,只需要更改引擎的配置文件,然后重新启动引擎。引擎启动时,会从配置文件中读取计算节点信息,并将其保存到计算节点列表和可用节点列表内。在无故障节点的情况下,计算节点列表和可用节点列表内的节点个数是一致的。
本发明引擎通过节点管理器来动态管理计算节点队列,从而对计算节点的进行运行状态监控,可以根据实际应用情况对计算节点进行删减,以保证引擎的可扩展性和可靠性。为了提高引擎的可用性和容错性,节点管理器定时对计算资源层中的计算节点进行是否宕机的检测。根据计算节点列表中的节点信息,节点管理器向计算节点发出应答请求,如果计算节点在规定时间内没有应答,则认为该节点已经宕机。如果该节点当前状态为运行,节点管理器会将该节点从可用节点列表中移出,并将计算节点列表中该节点的运行状态改为停止。如果在该节点上尚有未完成的作业,则先将正在运行的作业移至下一个节点上,再将该节点从可用节点列表中移出。如果节点管理器向处于停止状态的计算节点发出应答请求后,该节点及时向节点管理器返回应答,则表明该计算节点已经恢复运行,节点管理器会将该节点的状态改为运行,再将其加入到可用节点列表。
引擎启动时,会从配置文件中读取计算节点信息,并将其保存到计算节点队列和可用节点队列内。配置文件中定义了计算节点的地址信息、节点名称和最大作业数。其中,计算节点的硬件性能(如CPU个数、内存大小等)决定节点上所支持的最大作业数。如图3所示,启动后,引擎处于等待状态,服务接口层接收到外部的计算作业请求后,将作业请求发给调度管理层。调度管理层先判断作业等待队列中是否有处于等待状态的队列,如果有等待作业则将作业插入到队列中,如果无等待作业则判断可用节点对列中是否有可用状态的计算节点。如果无可用节点则将该作业插入到作业等待队列中,如果有可用节点则直接将作业分配给该节点上。作业计算完毕后,将作业结果返回。调度管理层定时向计算节点发出监控请求,并根据节点运行状态更新计算节点队列和可用节点队列。
本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
Claims (1)
1.基于ICE的分布式作业调度引擎,其特征在于:采用三层分布式对象的体系架构,包括服务接口层、调度管理层和计算资源层,调度管理层和计算资源层之间通过ICE进行通信,服务接口层和调度管理层之间通过接口函数完成作业提交和结果返回,其中:
服务接口层:属于引擎服务端,接收外部输入的计算作业请求,将计算作业请求提交到调度管理层;将调度管理层传来的计算作业处理结果返回给外部;
调度管理层:属于引擎服务端,实时监控计算资源层中各计算节点的负载状态,根据各计算节点的负载情况将服务接口层接收的计算作业请求分配给相关的计算节点进行处理;将计算资源层中各计算节点的计算作业请求处理结果返回给服务接口层;
计算资源层:包含有多个计算节点,各计算节点部署了引擎客户端,服从调度管理层的调度分配,对分配的计算作业请求进行处理并将处理结果返回给调度管理层;
所述的调度管理层包括配置文件、计算节点列表、可用节点列表、作业等待列表、作业分配控制器和节点管理器,其中:
配置文件:存储计算资源层中各计算节点的信息,包括计算节点的名称、地址、最大作业数;
计算节点列表:记录计算资源层中各计算节点的名称、地址、最大作业数,同时实时记录计算节点的可用状态;
可用节点列表:记录处于可用状态的计算节点正在执行作业的参数、占用的作业数和空闲的作业数;
作业等待列表:记录需要等待分配计算节点的计算作业请求;
作业分配控制器:负责对计算作业请求进行分配,当有计算作业请求时,从可用节点列表中取出第一个节点,如果该节点的空闲作业数不为零,将当前的计算作业请求分配给该节点,同时修改该节点的负载情况,将该节点的已占用作业数增加,空闲作业数减小,并把该节点排到可用节点列表的末尾,如果该节点的空闲作业数为零,则直接将该节点排到可用节点列表的末尾,依次类推从可用节点列表中读取下一节点进行处理;当计算作业请求处理完成后,从可用节点列表中将处理该计算作业请求的计算节点找出,修改该节点的负载情况,同时将该节点的已占用作业数减小,空闲作业数增加;如果可用节点列表中的所有节点都没有空闲作业资源,则将该计算作业请求送入作业等待列表排队等待,直到可用节点队列中的作业节点释放出空闲的作业资源;
节点管理器:将配置文件存储的信息送至计算节点列表和可用节点列表,对各计算节点定时发送监控请求,根据计算节点是否对监控请求发出回应判断计算节点状态正常或者故障并对计算节点列表和可用节点列表进行实时更新。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102860165A CN102033777B (zh) | 2010-09-17 | 2010-09-17 | 基于ice的分布式作业调度引擎 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010102860165A CN102033777B (zh) | 2010-09-17 | 2010-09-17 | 基于ice的分布式作业调度引擎 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102033777A CN102033777A (zh) | 2011-04-27 |
CN102033777B true CN102033777B (zh) | 2013-03-20 |
Family
ID=43886711
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010102860165A Active CN102033777B (zh) | 2010-09-17 | 2010-09-17 | 基于ice的分布式作业调度引擎 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102033777B (zh) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150213B (zh) * | 2011-12-06 | 2016-06-22 | 北大方正集团有限公司 | 负载平衡方法和装置 |
US8949308B2 (en) * | 2012-01-23 | 2015-02-03 | Microsoft Corporation | Building large scale infrastructure using hybrid clusters |
CN102572954B (zh) * | 2012-01-31 | 2015-05-20 | 中国移动(深圳)有限公司 | 一种漫游清算服务调度方法、中间件及系统 |
CN102866918B (zh) * | 2012-07-26 | 2016-02-24 | 中国科学院信息工程研究所 | 面向分布式编程框架的资源管理系统 |
CN103051469B (zh) * | 2012-09-13 | 2016-04-20 | 曙光信息产业(北京)有限公司 | 云环境下集中式配置管理方法 |
CN103067229A (zh) * | 2013-01-22 | 2013-04-24 | 浪潮(北京)电子信息产业有限公司 | 自动管理计算资源的方法、控制中心、计算节点及系统 |
CN105791354A (zh) * | 2014-12-23 | 2016-07-20 | 中兴通讯股份有限公司 | 作业调度方法和云调度服务器 |
CN104660689B (zh) * | 2015-02-04 | 2018-04-27 | 中国南方电网有限责任公司 | 分布式计算系统 |
CN105357042B (zh) * | 2015-10-30 | 2018-09-07 | 浪潮(北京)电子信息产业有限公司 | 一种高可用集群系统及其主节点和从节点 |
CN106095572B (zh) * | 2016-06-08 | 2019-12-06 | 东方网力科技股份有限公司 | 一种大数据处理的分布式调度系统及方法 |
CN107885594B (zh) * | 2016-09-30 | 2020-06-12 | 腾讯科技(深圳)有限公司 | 分布式资源调度方法、调度节点及接入节点 |
CN107247634A (zh) * | 2017-06-06 | 2017-10-13 | 广州视源电子科技股份有限公司 | 一种机器人动态异步远程过程调用的方法和装置 |
CN107911427A (zh) * | 2017-11-02 | 2018-04-13 | 山东超越数控电子股份有限公司 | 一种基于ice中间件的集群控制方法与装置 |
CN109067841B (zh) * | 2018-07-05 | 2021-05-25 | 武汉斗鱼网络科技有限公司 | 基于ZooKeeper的服务限流方法、系统、服务器及存储介质 |
CN110764892A (zh) * | 2019-10-22 | 2020-02-07 | 北京字节跳动网络技术有限公司 | 任务处理方法、设备及计算机可读存储介质 |
CN111158980A (zh) * | 2019-12-20 | 2020-05-15 | 深圳前海微众银行股份有限公司 | 一种任务执行的方法及装置 |
CN112000449B (zh) * | 2020-07-27 | 2023-03-31 | 新华三大数据技术有限公司 | 一种异步任务处理方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835451A (zh) * | 2005-03-15 | 2006-09-20 | 北京航空航天大学 | 基于森林结构的网格信息管理系统 |
CN101226491A (zh) * | 2008-02-01 | 2008-07-23 | 清华大学 | 基于组件的网格中间件互交互方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4308241B2 (ja) * | 2006-11-10 | 2009-08-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | ジョブ実行方法、ジョブ実行システム及びジョブ実行プログラム |
-
2010
- 2010-09-17 CN CN2010102860165A patent/CN102033777B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1835451A (zh) * | 2005-03-15 | 2006-09-20 | 北京航空航天大学 | 基于森林结构的网格信息管理系统 |
CN101226491A (zh) * | 2008-02-01 | 2008-07-23 | 清华大学 | 基于组件的网格中间件互交互方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102033777A (zh) | 2011-04-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102033777B (zh) | 基于ice的分布式作业调度引擎 | |
US8584136B2 (en) | Context-aware request dispatching in clustered environments | |
CN103092698B (zh) | 云计算应用自动部署系统及方法 | |
CN101958808B (zh) | 一种服务于多网格接入的集群任务调度管理器 | |
CN107025139A (zh) | 一种基于云计算的高性能计算调度框架 | |
JP5988621B2 (ja) | 高負荷のビジネスプロセスのスケーラビリティ | |
CN101873005B (zh) | 一种实现电能量均衡采集的方法 | |
EP3114589B1 (en) | System and method for massively parallel processing database | |
CN104735095A (zh) | 一种云计算平台作业调度方法及装置 | |
US20090276519A1 (en) | Method and System for Achieving Better Efficiency in a Client Grid Using Node Resource Usage and Tracking | |
CN111427678A (zh) | 汽车诊断云平台中的虚拟化资源调度系统、方法 | |
CN104239555A (zh) | 基于mpp的并行数据挖掘架构及其方法 | |
CN103716397B (zh) | 一种面向服务仿真时钟推进方法 | |
CN101424941B (zh) | 一种控制实现方法和系统 | |
CN112579267A (zh) | 一种去中心化大数据作业流调度方法及装置 | |
CN103380608B (zh) | 在计算环境中汇聚队列信息及作业信息的方法 | |
CN115115344A (zh) | 多学科仿真优化业务服务管理方法及中台系统 | |
CN104052677A (zh) | 单一数据源的软负载均衡方法和装置 | |
CN112039985A (zh) | 一种异构云管理方法及系统 | |
CN116010065A (zh) | 分布式任务调度方法、装置以及设备 | |
CN112291320A (zh) | 量子计算机集群分布式两层调度方法及系统 | |
CN112445590A (zh) | 一种计算资源接入及调度系统和方法 | |
Hsiao et al. | Cloud Computing, Internet of Things (IoT), Edge Computing, and Big Data Infrastructure | |
US10999350B2 (en) | Supercomputer system, method of data transmission in such supercomputer system and associated computer program product | |
Selvi et al. | Scheduling In Virtualized Grid Environment Using Hybrid Approach |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |