[发明专利]一种自动分发、运行和更新可执行程序的方法及系统在审
申请号: | 201310385972.2 | 申请日: | 2013-08-30 |
公开(公告)号: | CN103473287A | 公开(公告)日: | 2013-12-25 |
发明(设计)人: | 张闯;李钊;徐克付;张鹏 | 申请(专利权)人: | 中国科学院信息工程研究所 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;G06F9/445 |
代理公司: | 北京轻创知识产权代理有限公司 11212 | 代理人: | 杨立 |
地址: | 100093 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 自动 分发 运行 更新 可执行 程序 方法 系统 | ||
技术领域
本发明涉及云计算领域,尤其涉及一种自动分发、运行和更新可执行程序的方法及系统。
背景技术
近年来,一种新的数据密集型应用——流动“大数据”处理已经得到了广泛的认同,这些应用的实例包括:网络监控、电信数据管理、Web应用、传感检测等等。在这种数据流模型中,数据以大量、快速、时变(可能是不可预知)的数据流形式持续到达,针对这种网络海量流动数据的实时处理需求,建立适合的平台是需要考虑的问题。
基于流水线处理的实时云计算是解决流数据处理的有效方法与手段,其关注的是海量数据流即时处理,是一种数据密集型计算平台。工业界和学术界开发了很多实时云平台。在国内,包括baidu下一代数据流系统DStream、淘宝Beatles实时流式数据分析平台等;在国外,包括斯坦福大学的STREAM、施乐公司的Tapestry、加州大学伯克利分校的Telegraph、布朗大学和麻省理工学院合作的Aurora、Apache的Hadoop Online、Twitter的Storm以及Yahoo的S4。这些系统从集中式演化到并行分布式,其主要目的就是为了提高数据流处理的性能,降低处理延迟。
目前,几乎所有实时云平台都采用类似hadoop map/reduce函数式/接口式编程模型为用户提供编程接口,用户可以在接口中完成自己的业务函数,定义处理流程及Job信息,并提交Job程序到集群中,并分发程序给每个工作节点运行。
然而,这种方式存在以下一些问题:
1、函数式/接口式编程模型看似逻辑松散,灵活度高,但实则用户依然需要按照接口编程,使用平台提供的方法,当面对一些特殊业务时,平台提供的接口与方法并不能满足实际需求。
2、在线更新业务或算法代价过高。将所有处理流程中的函数打包成Jar文件或动态库文件的形式,并作为Job提交。在这种模式下,哪怕是只对一个节点中的一个算法的细微改动,也需要将整个集群中的Job杀死、修改算法、重新打包、重新提交Job。
因此,我们需要一种可以摆脱函数式编程束缚、实现可执行程序分布式提交运行的方法;并能够提供在线更新某个指定业务程序,而非重新提交整个Job的方法。
发明内容
本发明所要解决的技术问题是针对现有技术的不足,提供一种自动分发、运行和更新可执行程序的方法及系统,本发明具有良好的鲁棒性及运行效率。
本发明解决上述技术问题的技术方案如下:一种自动分发、运行和更新可执行程序的方法,包括如下步骤:
步骤A:客户端将可执行程序及相关文件所在目录打包成一个文件,并存储在缓存中;
步骤B:客户端采用大文件分割及索引存储方法将缓存中的打包文件存储到状态存储集群的相应目录中;
步骤C:工作节点每隔心跳时间到状态存储集群中与其相关的目录中检测索引状态,当检测到有新的索引或已有索引有更新,按照索引方式将可执行程序下载到本地目录;
步骤D:工作节点每隔心跳时间到状态存储集群中与其相关的目录中获取包括程序名、程序地址的程序相关信息;
步骤E:工作节点根据程序相关信息,每隔心跳时间到本地目录检测可执行程序的下载状态,直到检测到可执行程序下载完成时,执行可执行程序。
本发明的有益效果是:
1.可执行程序自动分发、运行
通过将可执行程序上传到状态存储集群中,各工作节点定时检查状态存储集群中的父目录的状态,并下载可执行程序,进而执行可执行程序,实现可执行程序的自动分发;
2.可执行程序运行时自动更新
工作节点通过检查状态存储集群中父目录的版本号及更新时间,完成可执行程序的版本控制,且工作节点执行单元定期检查本地目录中正在执行的可执行程序的MD5值,如果MD5值发送变化,则终止现有可执行程序的执行,执行最新版本的可执行程序,这样便摆脱了更新程序时需要重新提交Job的束缚;
3.灵活性与稳定性增加
在传统函数式云计算编程模型基础上,增加可执行程序执行模式,使得灵活性大大增加;且通过状态存储集群读写锁与大文件读写增强系统鲁棒性。
4.业务程序崩溃自动重启
本发明的运行控制方式使得当线程中业务程序运行崩溃后,可自动重启业务程序,保证了平台及业务的鲁棒性。
在上述技术方案的基础上,本发明还可以做如下改进。
进一步,上述技术方案还包括:
步骤F:工作节点每隔心跳时间检查本地目录中正在执行的可执行程序;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院信息工程研究所,未经中国科学院信息工程研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310385972.2/2.html,转载请声明来源钻瓜专利网。