针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法

文档序号:7797666阅读:170来源:国知局
针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法
【专利摘要】本发明公开了通用的分布式云计算系统及通用的分布式云计算方法,使用户通过一个统一的界面在连网的任意一台机器上都可以发布任务和监控任务的执行,而不必对着运行任务的机器操作,通过自动调度,在有任务时,使集群中每台机器都能工作,充分利用硬件资源,任务处理采用多台机器分布式并行计算,可通过扩展计算服务器的数量大大提高处理的速度,另外,由于采用每个任务单独分配给单独的计算服务器进行执行,某台计算服务器出现问题时,其他计算机也可以进行替代执行该任务,该任务的出错不会影响到工程中其他任务的执行,当出现不可恢复的错误时,只需要对计算服务器进行调整,从而将该任务插入至列表从而得到执行。
【专利说明】针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法
【技术领域】
[0001]本发明涉及分布式云计算领域,具体来说,涉及在分布式环境下,利用云存储在各节点之间完成数据交换、对任务进行调度和自动调用可执行程序来自动化处理任务的方法,尤其涉及针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法。
【背景技术】
[0002]传统计算机程序的执行需要用户在程序所在的机器上输入命令或通过图形界面来完成,其中很多程序的任务都是处理文件系统中的文件。这种方式被广泛地运用于企业和科研机构,他们出于自己的业务需求或研究需要,要经常运行相同的程序。这些程序的处理流程基本都是相同的,即读取文件、处理数据、最后以文件形式将结果输出。然而,这种方式在扩展性上有很大的问题。当数据量增大,处理时间变长时,一台机器将没有足够的性能来完成任务,那么势必要增加新的机器来分摊任务。而当机器变得很多的时候,在每台机器上都要人工执行及其相似的操作。这样的工作繁琐而机械,并且很不利于管理,将大大增加人力成本,另外容易出现某台机器处于任务饱和状态,和其他机器处于空闲状态,其整体的计算机性能无法进行优化。而通过分布式计算方式,将一个任务进行分配,然后让多台机器对同一个任务进行计算,最后由一台计算机进行对任务处理结果的整合,优先该处理方式需要解决任务处理的算法问题,另外,当任务处理中某台机器出现无法响应亦或者某台机器出现问题时,则后续的任务无法进行处理,即容易出现一个任务的执行失败,导致整个工程的执行失败,以及后续任务执行的推延。

【发明内容】

[0003]针对上述技术缺陷,本发明提出针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法。
[0004]为了解决上述技术问题,本发明的技术方案如下:
针对可执行程序的分布式云计算系统,包括调度服务器、计算服务器和云存储服务
器;
所述调度服务器用于创建工程及该工程包含的任务,并将该任务分配至计算服务器;所述计算服务器用于接受调度服务器分配的任务,并自动调用事先配置的可执行程序对该任务进行执行处理;
所述云存储服务器用于所述调度服务器创建工程及任务分配时资源文件的存储、所述计算服务器获取执行任务需要的资源文件的存储、所述计算服务器上传执行任务后的结果文件。
[0005]进一步的,所述调度服务器根据工程的优先级以及工程中任务的优先级进行分配,所述调度服务器实时监控计算服务器,根据计算服务器的请求,将任务分配至空闲的计算机服务器中。
[0006]进一步的,当计算服务器出现执行任务出错时,如果出现的出错是可恢复的,则调度服务器重置该任务,并分配该任务至其他空闲的计算服务器执行该任务;如果出现的出错是不可恢复的,则所述计算服务器停止执行该任务,所述调度服务器则停止分配该任务;当计算服务器执行任务的时间超过阈值,调度服务器将重置该任务,并分配该任务至其他空闲的计算服务器;如果调度服务器监控得到计算服务器出现问题无法执行分配的任务,则重置该任务,并分配该任务至其他空闲的计算服务器。对于一个任务,重置次数有限制,超过这个限制则所述调度服务器则停止重置和分配该任务
通用的分布式云计算方法,包括如下步骤:
41)调度服务器接受用户创建工程的请求,创建出新的工程和与该工程关联的若干个任务,并设定该工程以及任务的优先级,从而得到任务及工程的排队执行列表;
42)调度服务器根据计算服务器的请求,根据优先级从调度服务器领取任务,此时调度服务器将该被领取的任务标记为进行中;
43)计算服务器从云存储服务器上获取执行此任务需要的资源文件;
44)计算服务器运行配置的可执行程序,执行此任务;
45)完成此任务后,计算服务器向调度服务器请求将任务状态标为完成中,请求被调度服务器接受则上传运行结果到云存储服务器;
46)运行结果上传完毕,任务状态标为完成。
[0007]进一步的,所述步骤41)中的优先级可进行干预,调度服务器可根据优先级的高低,插入或者暂缓排队执行列表中的任务或者工程。
[0008]进一步的,在所述步骤45)中,为了防止同一个任务被多次提交,只有当任务的状态不为完成或不为完成中时,调度服务器才接受把状态标为完成中的请求。
[0009]进一步的,当计算服务器执行任务时发生不可恢复的错误,调度服务器将任务的状态会被直接标为失败,此任务将不再被执行;而当计算服务器执行任务时发生可恢复错误,则调度服务器将任务重置为开始,此任务将分配给其他的计算服务器执行。
[0010]进一步的,如果计算服务器执行任务时,一个任务长时间处于进行中的状态且处理该任务的计算服务器没有向调度服务器报告,则该任务被重置成开始,调度服务器重新根据优先级的高低进行排队执行列表的排列,并让其他计算服务器去执行此任务。
[0011]进一步的,当计算服务器执行任务,调度服务器将该工程的状态改变为进行中,当工程在进行中状态时,可以人工停止工程,则该工程中的任务将不再被调度服务器安排分配执行;也可以恢复已停止的项目,让时调度服务器根据优先级重新安排排队执行列表,此项目中的任务继续执行;当工程内部所有任务都执行完毕后,如果全部成功,则工程的状态会被设为完成;如果有失败的任务,那么这个工程的状态就会被设置为出错。
[0012]本发明的有益效果在于:使用户通过一个统一的界面在连网的任意一台机器上都可以发布任务和监控任务的执行,而不必对着运行任务的机器操作。通过自动调度,在有任务时,使集群中每台机器都能工作,充分利用硬件资源。任务处理采用多台机器分布式并行计算,可通过扩展计算服务器的数量大大提高处理的速度,另外,由于采用每个任务单独分配给单独的计算服务器进行执行,某台计算服务器出现问题时,其他计算机也可以进行替代执行该任务,该任务的出错不会影响到工程中其他任务的执行,当出现不可恢复的错误时,只需要对计算服务器进行调整,调度服务器自动会根据优先级重新安排排队执行列表,从而将该任务插入至列表从而得到执行。
【专利附图】

【附图说明】
[0013]图1是本发明针对可执行程序的分布式云计算系统的结构组成图;
图2是本发明针对可执行程序的分布式云计算系统中工程的状态图;
图3是本发明针对可执行程序的分布式云计算系统中任务的状态图。
【具体实施方式】
[0014]下面将结合附图和具体实施例对本发明做进一步的说明。
[0015]当多台电脑需要运行相同的程序来处理大量的数据时,为了使人员不必进行大量重复而机械的操作,本发明提供了一种将任务分配到不同机器进行自动化处理的方法。本系统分为两个部分:一是在调度服务器上的调度系统;一是在每台计算服务器上的自动化处理系统。整个系统将包括一个调度服务器及若干个计算服务器,调度服务器负责维护整个任务执行队列,计算服务器负责对分配领取的任务的执行。
[0016]调度服务器是整个系统的中枢,其维护的任务队列有两级的概念:工程和任务,一个工程可以包括一个或多个任务,每个工程和任务都有优先级和状态来用于调度。优先级例如可以由无符号整数标记,以较小的数字表示较高的优先级,也可以采用其他计算机可识别的方式进行。
[0017]工程的状态有五个,分别是:
1.开始:表示工程被新建,还未开始执行任务;
2.进行中:表示工程中的任务正在被执行;
3.停止:表示工程被人工停止;
4.完成:表示工程中的任务以全部被成功得执行;
5.出错:表示工程中有出错的任务;
任务的状态有五个,分别是:
1.开始:表示任务被新建,等待被领取;
2.进行中:表示任务正在被执行;
3.失败:表示任务失败;
4.完成中:表不正在上传任务结果;
5.完成:表不任务被成功执行;
调度服务器通过对工程及任务的优先级与状态的改变,来实现整个调度过程。
[0018]在自动处理任务时,需要用到特定的可执行程序,其可靠性是无法由本系统控制的,在运行多次之后难免会出现错误,如异常退出、死锁、输入文件错误等。这些情况繁多而复杂,但从表现看,就分为两种:一是程序不正常退出,一是程序长时间不响应。同时考虑到有的错误是可以通过重试来解决的,而有的错误则不行,于是将错误的类型分为可恢复的和不可恢复的,如输入文件错误是不可恢复的,而程序长时间不响应通常是可恢复的。于是,当出现不可恢复的错误时,将此任务标为失败;当出现可恢复错误时则调度服务器将任务重置,分配由其他计算服务器重试此任务。当重试次数达到一定限度时,也将此任务标为失败以防止无谓的尝试而浪费性能。
[0019]本发明还开放遵循HTTP协议的接口的方式来允许用户查询任务运行的状态和控制任务的调度。查询功能将给出工程的状态及工程中不同状态任务的数目,通过已完成和未完成的任务的比例可以估算出这个任务的执行进度。而开放的控制接口有以下几个:
1.新建工程:提供必要的数据,在任务队列中添加一个工程。
[0020]2.调整优先级:更改工程的优先级,优先级较高的工程的任务会被先优先领取执行。
[0021]3.中断工程:将当前状态为开始或进行中的工程标为停止,使工程中的任务不再被领取执行。
[0022]4.恢复工程:将当前状态为停止的工程重新标为开始,使工程继续进行。
[0023]如图1所示,说明了本实施例的结构组成,本例中包括一台调度服务器和三台计算服务器。同时,所有机器都连接上了同一个云存储。图2和图3说明了本发明中工程和任务的状态变化。
[0024]首先,调度服务器接受到用户的创建工程请求,创建出一个新的工程和若干个任务。这时,工程和任务的状态都为开始。
[0025]在理想情况下,一个工程中的任务接下来将经过以下几个步骤:
a.每台计算服务器根据优先级从调度服务器领取一个任务。此时,任务的状态将会从开始改变为进行中;
b.计算服务器从云存储上获取执行此任务需要的资源文件;
c.计算服务器运行配置的程序,执行此任务;
d.计算服务器请求将任务状态标为完成中,请求被接受则上传运行结果到云存储;
e.运行结果上传完毕,任务状态标为完成。
[0026]步骤a根据优先级来领取任务,调度服务器会挑选出拥有最高优先级的工程中拥有最高优先级的任务,优先级可由调度服务器提供的API来改变。这样,后添加进来的紧急任务可以被优先执行即将后来的优先级高的任务插入至调度服务器的任务执行序列中。
[0027]在步骤d中,为了防止同一个任务被多次提交,只有当任务的状态不为完成和完成中时,调度服务器才接受把状态标为完成中的请求。
[0028]上述过程发生在大多数情况下,即没有任何错误发生的情况下,当发生错误时,流程将有所不同。
[0029]当发生不可恢复的错误时,任务的状态会被直接标为失败,此任务将不再被执行。而当发生可恢复错误时,则将任务重置为开始,这样此任务就可以被再次执行。同时,在调度服务器有超时检查的机制:如果一个任务长时间处于进行中的状态且处理改任务的计算服务器没有向调度服务器报告,那么很可能在计算服务器出了问题而不能完成此任务,任务也会被重置成开始以让其他计算服务器去执行此任务,从而避免一个任务的失败影响整个工程的执行进展。
[0030]发生可恢复错误的概率本来就很低,重复出现的概率则更低。因此,任务被重置的次数是有限的。当超过了这个限制,任务的状态就会被设置为失败。
[0031]工程的状态变化和其任务的执行情况有关,同时还受人操作的影响。当有任务开始执行时,其状态就会改变为进行中。当工程在进行中状态时,可以人工停止工程,那么这个工程中的任务将不再被领取执行;也可以恢复已停止的项目,让此工程中的任务继续执行。当其内部所有任务都执行完毕后,如果全部成功,则工程的状态会被设为完成;如果有失败的任务,那么这个工程的状态就会被设置为出错。这样,整个工程的生命周期就结束了,然而,当对该失败任务进行处理后,该任务将继续进行执行,从而该任务完成后,整个工程也可以标记完成,不影响其他已经处理好的任务,节省了重复计算的时间。
[0032]以上所述仅是本发明的优选实施方式,应当指出,对于本【技术领域】的普通技术人员,在不脱离本发明构思的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明保护范围内。
【权利要求】
1.针对可执行程序的分布式云计算系统,其特征在于,包括调度服务器、计算服务器和云存储服务器; 所述调度服务器用于创建工程及该工程包含的任务,并将该任务分配至计算服务器; 所述计算服务器用于接受调度服务器分配的任务,通过自动调用事先配置的可执行程序对该任务进行执行处理; 所述云存储服务器用于所述调度服务器创建工程及任务分配时资源文件的存储,所述计算服务器获取执行任务需要的资源文件的存储、所述计算服务器上传执行任务后的结果文件。
2.根据权利要求1所述的针对可执行程序的分布式云计算系统,其特征在于,所述调度服务器根据工程的优先级以及工程中任务的优先级进行分配,所述调度服务器实时监控计算服务器,根据计算服务器的请求,将任务分配至空闲的计算机服务器中。
3.根据权利要求2所述的针对可执行程序的分布式云计算系统,其特征在于,当计算服务器出现执行任务出错时,如果出现的出错是可恢复的,则调度服务器重置该任务,并分配该任务至其他空闲的计算服务器执行该任务;如果出现的出错是不可恢复的,则所述计算服务器停止执行该任务,所述调度服务器则停止分配该任务;当计算服务器执行任务的时间超过阈值,调度服务器将重置该任务,并分配该任务至其他空闲的计算服务器;如果调度服务器监控得到计算服务器出现问题无法执行分配的任务,则重置该任务,并分配该任务至其他空闲的计算服务器。
4.针对可执行程序的分布式云计算方法,其特征在于,包括如下步骤: 41)调度服务器接受用户创建工程的请求,创建出新的工程和与该工程关联的若干个任务,并设定该工程以及任务的优先级,从而得到任务及工程的排队执行列表; 42)调度服务器根据计算服务器的请求,根据优先级从调度服务器领取任务,此时调度服务器将该被领取的任务标记为进行中; 43)计算服务器从云存储服务器上获取执行此任务需要的资源文件; 44)计算服务器运行配置的可执行程序,执行此任务; 45)完成此任务后,计算服务器向调度服务器请求将任务状态标为完成中,请求被调度服务器接受则上传运行结果到云存储服务器; 46)运行结果上传完毕,任务状态标为完成。
5.根据权利要求4所述的针对可执行程序的分布式云计算方法,其特征在于,所述步骤41)中的优先级可进行干预,调度服务器可根据优先级的高低,插入或者暂缓排队执行列表中的任务或者工程。
6.根据权利要求5所述的针对可执行程序的分布式云计算方法,其特征在于,在所述步骤45)中,为了防止同一个任务被多次提交,只有当任务的状态不为完成或不为完成中时,调度服务器才接受把状态标为完成中的请求。
7.根据权利要求6所述的针对可执行程序的分布式云计算方法,其特征在于,当计算服务器执行任务时发生不可恢复的错误,调度服务器将任务的状态会被直接标为失败,此任务将不再被执行;而当计算服务器执行任务时发生可恢复错误,则调度服务器将任务重置为开始,此任务将分配给其他的计算服务器执行。
8.根据权利要求7所述的针对可执行程序 的分布式云计算方法,其特征在于,如果计算服务器执行任务时,一个任务长时间处于进行中的状态且处理该任务的计算服务器没有向调度服务器报告,则该任务被重置成开始,调度服务器重新根据优先级的高低进行排队执行列表的排列,并让其他计算服务器去执行此任务。
9.根据权利要求8所述的针对可执行程序的分布式云计算方法,其特征在于,当计算服务器执行任务,调度服务器将该工程的状态改变为进行中,当工程在进行中状态时,可以人工停止工程,则该工程中的任务将不再被调度服务器安排分配执行;也可以恢复已停止的项目,让时调度服务器根据优先级重新安排排队执行列表,此项目中的任务继续执行;当工程内部所有任务都执行完毕后,如果全部成功,则工程的状态会被设为完成;如果有失败的任务,那么这个工程的状态就会被设`置为出错。
【文档编号】H04L29/08GK103823719SQ201410068059
【公开日】2014年5月28日 申请日期:2014年2月26日 优先权日:2014年2月26日
【发明者】陆兵斌, 刘嘉睿, 陈蓉艳, 蒋启翔 申请人:杭州群核信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1