《针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法.pdf》由会员分享,可在线阅读,更多相关《针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方法.pdf(10页珍藏版)》请在专利查询网上搜索。
1、(10)申请公布号 CN 103823719 A (43)申请公布日 2014.05.28 CN 103823719 A (21)申请号 201410068059.4 (22)申请日 2014.02.26 G06F 9/50(2006.01) H04L 29/08(2006.01) (71)申请人 杭州群核信息技术有限公司 地址 310012 浙江省杭州市西湖区西斗门路 3 号天堂软件园 D 幢 4 楼 B 座 (72)发明人 陆兵斌 刘嘉睿 陈蓉艳 蒋启翔 (74)专利代理机构 浙江杭州金通专利事务所有 限公司 33100 代理人 徐关寿 (54) 发明名称 针对可执行程序的分布式云计算系统。
2、及针对 可执行程序的分布式云计算方法 (57) 摘要 本发明公开了通用的分布式云计算系统及通 用的分布式云计算方法, 使用户通过一个统一的 界面在连网的任意一台机器上都可以发布任务和 监控任务的执行, 而不必对着运行任务的机器操 作, 通过自动调度, 在有任务时, 使集群中每台机 器都能工作, 充分利用硬件资源, 任务处理采用多 台机器分布式并行计算, 可通过扩展计算服务器 的数量大大提高处理的速度, 另外, 由于采用每个 任务单独分配给单独的计算服务器进行执行, 某 台计算服务器出现问题时, 其他计算机也可以进 行替代执行该任务, 该任务的出错不会影响到工 程中其他任务的执行, 当出现不可恢。
3、复的错误时, 只需要对计算服务器进行调整, 从而将该任务插 入至列表从而得到执行。 (51)Int.Cl. 权利要求书 2 页 说明书 5 页 附图 2 页 (19)中华人民共和国国家知识产权局 (12)发明专利申请 权利要求书2页 说明书5页 附图2页 (10)申请公布号 CN 103823719 A CN 103823719 A 1/2 页 2 1. 针对可执行程序的分布式云计算系统, 其特征在于, 包括调度服务器、 计算服务器和 云存储服务器 ; 所述调度服务器用于创建工程及该工程包含的任务, 并将该任务分配至计算服务器 ; 所述计算服务器用于接受调度服务器分配的任务, 通过自动调用事先。
4、配置的可执行程 序对该任务进行执行处理 ; 所述云存储服务器用于所述调度服务器创建工程及任务分配时资源文件的存储, 所述 计算服务器获取执行任务需要的资源文件的存储、 所述计算服务器上传执行任务后的结果 文件。 2. 根据权利要求 1 所述的针对可执行程序的分布式云计算系统, 其特征在于, 所述调 度服务器根据工程的优先级以及工程中任务的优先级进行分配, 所述调度服务器实时监控 计算服务器, 根据计算服务器的请求, 将任务分配至空闲的计算机服务器中。 3. 根据权利要求 2 所述的针对可执行程序的分布式云计算系统, 其特征在于, 当计算 服务器出现执行任务出错时, 如果出现的出错是可恢复的, 。
5、则调度服务器重置该任务, 并分 配该任务至其他空闲的计算服务器执行该任务 ; 如果出现的出错是不可恢复的, 则所述计 算服务器停止执行该任务, 所述调度服务器则停止分配该任务 ; 当计算服务器执行任务的 时间超过阈值, 调度服务器将重置该任务, 并分配该任务至其他空闲的计算服务器 ; 如果调 度服务器监控得到计算服务器出现问题无法执行分配的任务, 则重置该任务, 并分配该任 务至其他空闲的计算服务器。 4. 针对可执行程序的分布式云计算方法, 其特征在于, 包括如下步骤 : 41) 调度服务器接受用户创建工程的请求, 创建出新的工程和与该工程关联的若干个 任务, 并设定该工程以及任务的优先级,。
6、 从而得到任务及工程的排队执行列表 ; 42) 调度服务器根据计算服务器的请求, 根据优先级从调度服务器领取任务, 此时调度 服务器将该被领取的任务标记为进行中 ; 43) 计算服务器从云存储服务器上获取执行此任务需要的资源文件 ; 44) 计算服务器运行配置的可执行程序, 执行此任务 ; 45) 完成此任务后, 计算服务器向调度服务器请求将任务状态标为完成中, 请求被调度 服务器接受则上传运行结果到云存储服务器 ; 46) 运行结果上传完毕, 任务状态标为完成。 5. 根据权利要求 4 所述的针对可执行程序的分布式云计算方法, 其特征在于, 所述步 骤 41) 中的优先级可进行干预, 调度服。
7、务器可根据优先级的高低, 插入或者暂缓排队执行列 表中的任务或者工程。 6. 根据权利要求 5 所述的针对可执行程序的分布式云计算方法, 其特征在于, 在所述 步骤 45) 中, 为了防止同一个任务被多次提交, 只有当任务的状态不为完成或不为完成中 时, 调度服务器才接受把状态标为完成中的请求。 7. 根据权利要求 6 所述的针对可执行程序的分布式云计算方法, 其特征在于, 当计算 服务器执行任务时发生不可恢复的错误, 调度服务器将任务的状态会被直接标为失败, 此 任务将不再被执行 ; 而当计算服务器执行任务时发生可恢复错误, 则调度服务器将任务重 置为开始, 此任务将分配给其他的计算服务器执。
8、行。 8. 根据权利要求 7 所述的针对可执行程序的分布式云计算方法, 其特征在于, 如果计 权 利 要 求 书 CN 103823719 A 2 2/2 页 3 算服务器执行任务时, 一个任务长时间处于进行中的状态且处理该任务的计算服务器没有 向调度服务器报告, 则该任务被重置成开始, 调度服务器重新根据优先级的高低进行排队 执行列表的排列, 并让其他计算服务器去执行此任务。 9. 根据权利要求 8 所述的针对可执行程序的分布式云计算方法, 其特征在于, 当计算 服务器执行任务, 调度服务器将该工程的状态改变为进行中, 当工程在进行中状态时, 可以 人工停止工程, 则该工程中的任务将不再被调。
9、度服务器安排分配执行 ; 也可以恢复已停止 的项目, 让时调度服务器根据优先级重新安排排队执行列表, 此项目中的任务继续执行 ; 当 工程内部所有任务都执行完毕后, 如果全部成功, 则工程的状态会被设为完成 ; 如果有失败 的任务, 那么这个工程的状态就会被设置为出错。 权 利 要 求 书 CN 103823719 A 3 1/5 页 4 针对可执行程序的分布式云计算系统及针对可执行程序的 分布式云计算方法 技术领域 0001 本发明涉及分布式云计算领域, 具体来说, 涉及在分布式环境下, 利用云存储在各 节点之间完成数据交换、 对任务进行调度和自动调用可执行程序来自动化处理任务的方 法, 尤。
10、其涉及针对可执行程序的分布式云计算系统及针对可执行程序的分布式云计算方 法。 背景技术 0002 传统计算机程序的执行需要用户在程序所在的机器上输入命令或通过图形界面 来完成, 其中很多程序的任务都是处理文件系统中的文件。这种方式被广泛地运用于企业 和科研机构, 他们出于自己的业务需求或研究需要, 要经常运行相同的程序。 这些程序的处 理流程基本都是相同的, 即读取文件、 处理数据、 最后以文件形式将结果输出。 然而, 这种方 式在扩展性上有很大的问题。 当数据量增大, 处理时间变长时, 一台机器将没有足够的性能 来完成任务, 那么势必要增加新的机器来分摊任务。 而当机器变得很多的时候, 在每。
11、台机器 上都要人工执行及其相似的操作。 这样的工作繁琐而机械, 并且很不利于管理, 将大大增加 人力成本, 另外容易出现某台机器处于任务饱和状态, 和其他机器处于空闲状态, 其整体的 计算机性能无法进行优化。 而通过分布式计算方式, 将一个任务进行分配, 然后让多台机器 对同一个任务进行计算, 最后由一台计算机进行对任务处理结果的整合, 优先该处理方式 需要解决任务处理的算法问题, 另外, 当任务处理中某台机器出现无法响应亦或者某台机 器出现问题时, 则后续的任务无法进行处理, 即容易出现一个任务的执行失败, 导致整个工 程的执行失败, 以及后续任务执行的推延。 发明内容 0003 针对上述技。
12、术缺陷, 本发明提出针对可执行程序的分布式云计算系统及针对可执 行程序的分布式云计算方法。 0004 为了解决上述技术问题, 本发明的技术方案如下 : 针对可执行程序的分布式云计算系统, 包括调度服务器、 计算服务器和云存储服务 器 ; 所述调度服务器用于创建工程及该工程包含的任务, 并将该任务分配至计算服务器 ; 所述计算服务器用于接受调度服务器分配的任务, 并自动调用事先配置的可执行程序 对该任务进行执行处理 ; 所述云存储服务器用于所述调度服务器创建工程及任务分配时资源文件的存储、 所述 计算服务器获取执行任务需要的资源文件的存储、 所述计算服务器上传执行任务后的结果 文件。 0005 。
13、进一步的, 所述调度服务器根据工程的优先级以及工程中任务的优先级进行分 配, 所述调度服务器实时监控计算服务器, 根据计算服务器的请求, 将任务分配至空闲的计 说 明 书 CN 103823719 A 4 2/5 页 5 算机服务器中。 0006 进一步的, 当计算服务器出现执行任务出错时, 如果出现的出错是可恢复的, 则调 度服务器重置该任务, 并分配该任务至其他空闲的计算服务器执行该任务 ; 如果出现的出 错是不可恢复的, 则所述计算服务器停止执行该任务, 所述调度服务器则停止分配该任务 ; 当计算服务器执行任务的时间超过阈值, 调度服务器将重置该任务, 并分配该任务至其他 空闲的计算服务。
14、器 ; 如果调度服务器监控得到计算服务器出现问题无法执行分配的任务, 则重置该任务, 并分配该任务至其他空闲的计算服务器。对于一个任务, 重置次数有限制, 超过这个限制则所述调度服务器则停止重置和分配该任务 通用的分布式云计算方法, 包括如下步骤 : 41) 调度服务器接受用户创建工程的请求, 创建出新的工程和与该工程关联的若干个 任务, 并设定该工程以及任务的优先级, 从而得到任务及工程的排队执行列表 ; 42) 调度服务器根据计算服务器的请求, 根据优先级从调度服务器领取任务, 此时调度 服务器将该被领取的任务标记为进行中 ; 43) 计算服务器从云存储服务器上获取执行此任务需要的资源文件。
15、 ; 44) 计算服务器运行配置的可执行程序, 执行此任务 ; 45) 完成此任务后, 计算服务器向调度服务器请求将任务状态标为完成中, 请求被调度 服务器接受则上传运行结果到云存储服务器 ; 46) 运行结果上传完毕, 任务状态标为完成。 0007 进一步的, 所述步骤 41) 中的优先级可进行干预, 调度服务器可根据优先级的高 低, 插入或者暂缓排队执行列表中的任务或者工程。 0008 进一步的, 在所述步骤 45) 中, 为了防止同一个任务被多次提交, 只有当任务的状 态不为完成或不为完成中时, 调度服务器才接受把状态标为完成中的请求。 0009 进一步的, 当计算服务器执行任务时发生不。
16、可恢复的错误, 调度服务器将任务的 状态会被直接标为失败, 此任务将不再被执行 ; 而当计算服务器执行任务时发生可恢复错 误, 则调度服务器将任务重置为开始, 此任务将分配给其他的计算服务器执行。 0010 进一步的, 如果计算服务器执行任务时, 一个任务长时间处于进行中的状态且处 理该任务的计算服务器没有向调度服务器报告, 则该任务被重置成开始, 调度服务器重新 根据优先级的高低进行排队执行列表的排列, 并让其他计算服务器去执行此任务。 0011 进一步的, 当计算服务器执行任务, 调度服务器将该工程的状态改变为进行中, 当 工程在进行中状态时, 可以人工停止工程, 则该工程中的任务将不再被。
17、调度服务器安排分 配执行 ; 也可以恢复已停止的项目, 让时调度服务器根据优先级重新安排排队执行列表, 此 项目中的任务继续执行 ; 当工程内部所有任务都执行完毕后, 如果全部成功, 则工程的状态 会被设为完成 ; 如果有失败的任务, 那么这个工程的状态就会被设置为出错。 0012 本发明的有益效果在于 : 使用户通过一个统一的界面在连网的任意一台机器上都 可以发布任务和监控任务的执行, 而不必对着运行任务的机器操作。 通过自动调度, 在有任 务时, 使集群中每台机器都能工作, 充分利用硬件资源。 任务处理采用多台机器分布式并行 计算, 可通过扩展计算服务器的数量大大提高处理的速度, 另外, 。
18、由于采用每个任务单独分 配给单独的计算服务器进行执行, 某台计算服务器出现问题时, 其他计算机也可以进行替 代执行该任务, 该任务的出错不会影响到工程中其他任务的执行, 当出现不可恢复的错误 说 明 书 CN 103823719 A 5 3/5 页 6 时, 只需要对计算服务器进行调整, 调度服务器自动会根据优先级重新安排排队执行列表, 从而将该任务插入至列表从而得到执行。 附图说明 0013 图 1 是本发明针对可执行程序的分布式云计算系统的结构组成图 ; 图 2 是本发明针对可执行程序的分布式云计算系统中工程的状态图 ; 图 3 是本发明针对可执行程序的分布式云计算系统中任务的状态图。 具。
19、体实施方式 0014 下面将结合附图和具体实施例对本发明做进一步的说明。 0015 当多台电脑需要运行相同的程序来处理大量的数据时, 为了使人员不必进行大量 重复而机械的操作, 本发明提供了一种将任务分配到不同机器进行自动化处理的方法。本 系统分为两个部分 : 一是在调度服务器上的调度系统 ; 一是在每台计算服务器上的自动化 处理系统。整个系统将包括一个调度服务器及若干个计算服务器, 调度服务器负责维护整 个任务执行队列, 计算服务器负责对分配领取的任务的执行。 0016 调度服务器是整个系统的中枢, 其维护的任务队列有两级的概念 : 工程和任务, 一 个工程可以包括一个或多个任务, 每个工程。
20、和任务都有优先级和状态来用于调度。优先级 例如可以由无符号整数标记, 以较小的数字表示较高的优先级, 也可以采用其他计算机可 识别的方式进行。 0017 工程的状态有五个, 分别是 : 1. 开始 : 表示工程被新建, 还未开始执行任务 ; 2. 进行中 : 表示工程中的任务正在被执行 ; 3. 停止 : 表示工程被人工停止 ; 4. 完成 : 表示工程中的任务以全部被成功得执行 ; 5. 出错 : 表示工程中有出错的任务 ; 任务的状态有五个, 分别是 : 1. 开始 : 表示任务被新建, 等待被领取 ; 2. 进行中 : 表示任务正在被执行 ; 3. 失败 : 表示任务失败 ; 4. 完成。
21、中 : 表示正在上传任务结果 ; 5. 完成 : 表示任务被成功执行 ; 调度服务器通过对工程及任务的优先级与状态的改变, 来实现整个调度过程。 0018 在自动处理任务时, 需要用到特定的可执行程序, 其可靠性是无法由本系统控制 的, 在运行多次之后难免会出现错误, 如异常退出、 死锁、 输入文件错误等。 这些情况繁多而 复杂, 但从表现看, 就分为两种 : 一是程序不正常退出, 一是程序长时间不响应。同时考虑 到有的错误是可以通过重试来解决的, 而有的错误则不行, 于是将错误的类型分为可恢复 的和不可恢复的, 如输入文件错误是不可恢复的, 而程序长时间不响应通常是可恢复的。 于 是, 当出。
22、现不可恢复的错误时, 将此任务标为失败 ; 当出现可恢复错误时则调度服务器将任 务重置, 分配由其他计算服务器重试此任务。 当重试次数达到一定限度时, 也将此任务标为 说 明 书 CN 103823719 A 6 4/5 页 7 失败以防止无谓的尝试而浪费性能。 0019 本发明还开放遵循 HTTP 协议的接口的方式来允许用户查询任务运行的状态和控 制任务的调度。查询功能将给出工程的状态及工程中不同状态任务的数目, 通过已完成和 未完成的任务的比例可以估算出这个任务的执行进度。而开放的控制接口有以下几个 : 1. 新建工程 : 提供必要的数据, 在任务队列中添加一个工程。 0020 2. 调整。
23、优先级 : 更改工程的优先级, 优先级较高的工程的任务会被先优先领取执 行。 0021 3. 中断工程 : 将当前状态为开始或进行中的工程标为停止, 使工程中的任务不再 被领取执行。 0022 4. 恢复工程 : 将当前状态为停止的工程重新标为开始, 使工程继续进行。 0023 如图 1 所示, 说明了本实施例的结构组成, 本例中包括一台调度服务器和三台计 算服务器。同时, 所有机器都连接上了同一个云存储。图 2 和图 3 说明了本发明中工程和 任务的状态变化。 0024 首先, 调度服务器接受到用户的创建工程请求, 创建出一个新的工程和若干个任 务。这时, 工程和任务的状态都为开始。 002。
24、5 在理想情况下, 一个工程中的任务接下来将经过以下几个步骤 : a每台计算服务器根据优先级从调度服务器领取一个任务。此时, 任务的状态将会从 开始改变为进行中 ; b计算服务器从云存储上获取执行此任务需要的资源文件 ; c计算服务器运行配置的程序, 执行此任务 ; d计算服务器请求将任务状态标为完成中, 请求被接受则上传运行结果到云存储 ; e运行结果上传完毕, 任务状态标为完成。 0026 步骤 a 根据优先级来领取任务, 调度服务器会挑选出拥有最高优先级的工程中拥 有最高优先级的任务, 优先级可由调度服务器提供的 API 来改变。这样, 后添加进来的紧急 任务可以被优先执行即将后来的优先。
25、级高的任务插入至调度服务器的任务执行序列中。 0027 在步骤 d 中, 为了防止同一个任务被多次提交, 只有当任务的状态不为完成和完 成中时, 调度服务器才接受把状态标为完成中的请求。 0028 上述过程发生在大多数情况下, 即没有任何错误发生的情况下, 当发生错误时, 流 程将有所不同。 0029 当发生不可恢复的错误时, 任务的状态会被直接标为失败, 此任务将不再被执行。 而当发生可恢复错误时, 则将任务重置为开始, 这样此任务就可以被再次执行。同时, 在调 度服务器有超时检查的机制 : 如果一个任务长时间处于进行中的状态且处理改任务的计算 服务器没有向调度服务器报告, 那么很可能在计算。
26、服务器出了问题而不能完成此任务, 任 务也会被重置成开始以让其他计算服务器去执行此任务, 从而避免一个任务的失败影响整 个工程的执行进展。 0030 发生可恢复错误的概率本来就很低, 重复出现的概率则更低。 因此, 任务被重置的 次数是有限的。当超过了这个限制, 任务的状态就会被设置为失败。 0031 工程的状态变化和其任务的执行情况有关, 同时还受人操作的影响。当有任务开 始执行时, 其状态就会改变为进行中。当工程在进行中状态时, 可以人工停止工程, 那么这 说 明 书 CN 103823719 A 7 5/5 页 8 个工程中的任务将不再被领取执行 ; 也可以恢复已停止的项目, 让此工程中。
27、的任务继续执 行。当其内部所有任务都执行完毕后, 如果全部成功, 则工程的状态会被设为完成 ; 如果有 失败的任务, 那么这个工程的状态就会被设置为出错。这样, 整个工程的生命周期就结束 了, 然而, 当对该失败任务进行处理后, 该任务将继续进行执行, 从而该任务完成后, 整个工 程也可以标记完成, 不影响其他已经处理好的任务, 节省了重复计算的时间。 0032 以上所述仅是本发明的优选实施方式, 应当指出, 对于本技术领域的普通技术人 员, 在不脱离本发明构思的前提下, 还可以做出若干改进和润饰, 这些改进和润饰也应视为 本发明保护范围内。 说 明 书 CN 103823719 A 8 1/2 页 9 图 1 图 2 说 明 书 附 图 CN 103823719 A 9 2/2 页 10 图 3 说 明 书 附 图 CN 103823719 A 10 。