一种分布式计算方法及系统技术方案

技术编号:8300735 阅读:212 留言:0更新日期:2013-02-07 04:07
本发明专利技术提供了一种分布式计算方法,包括以下步骤:基于不同分布式计算平台的通用功能,构建多个分布式计算平台间的统一编程接口;根据用户具体的应用需求,通过所述统一编程接口进行编程,构建分布式应用程序;调用分发脚本将所述分布式应用程序提交到分布式计算平台,启动待执行的任务,在所述分布式计算平台下执行所述分布式应用程序。采用该方法,使得分布式应用程序能够在不改动或者极少改动的情况下在不同的分布式计算平台上执行,因此提高了不同的分布式计算平台之间的可移植性。此外,还提供了一种分布式计算系统。

【技术实现步骤摘要】
一种分布式计算方法及系统
本专利技术涉及分布式计算,尤其涉及一种分布式计算方法及系统。
技术介绍
分布式计算平台是一种支持应用程序在其上分布式执行的底层服务平台。目前,各个分布式计算平台都各自有一套编程接口和提交运行方式。为某一个分布式计算平台所编写的应用程序,如果不经过大幅改动,是不能运行于其他平台的,而且有些情况甚至是不可能移植的。对于不同的分布式计算平台,开发人员必须学习不同的应用程序开发方法与提交运行的步骤,因此在不同的分布式计算平台之间进行迁移是十分困难的。总之,在传统·的分布式计算方法中,不同的分布式计算平台之间的可移植性较差。
技术实现思路
基于此,有必要提供一种分布式计算方法,能够提高不同的分布式计算平台之间的可移植性。一种分布式计算方法,包括以下步骤基于不同分布式计算平台的通用功能,构建多个分布式计算平台间的统一编程接Π ;根据用户的应用需求,通过所述统一编程接口进行编程,构建分布式应用程序;调用分发脚本将所述分布式应用程序提交到分布式计算平台,启动待执行的任务,在所述分布式计算平台下执行所述分布式应用程序。在优选的实施例中,所述统一编程接口包括上下文接口、用于解析输入数据并生成输出数据的接口、文件访问接口和输入输出字节流接口。在优选的实施例中,所述调用分发脚本将所述分布式应用程序提交到分布式计算平台的步骤包括获取输入文件列表,生成待处理文件列表;根据分布式计算平台中的mapper数目切分所述待处理文件列表;将所述切分后的待处理文件列表提交给所述分布式计算平台。在优选的实施例中,所述调用分发脚本将所述分布式应用程序提交到分布式计算平台的步骤还包括通过命令行参数收集输入的配置信息;根据所述配置信息,对所述分布式计算平台中的mapper和reducer分别生成封装脚本;将所述封装脚本提交给所述分布式计算平台。在优选的实施例中,所述切分后的待处理文件列表中记录了待处理文件的文件路径;所述在分布式计算平台下执行所述分布式应用程序的步骤还包括通过所述分布式计算平台获取切分后的待处理文件列表,根据所述待处理文件的文件路径对所述待处理文件进行处理,输出处理結果。此外,还有必要提供ー种分布式计算系统,能够提高不同的分布式计算平台之间的可移植性。ー种分布式计算系统,包括平台封装模块,用于基于不同分布式计算平台的通用功能,构建多个分布式计算平台间的统一编程接ロ;应用封装模块,用于根据用户具体的应用需求,通过所述统ー编程接ロ进行编程,构建分布式应用程序;执行模块,用于调用分发脚本将所述分布式应用程序提交到分布式计算平台,启动待执行的任务,在所述分布式计算平台上执行所述分布式应用程序。在优选的实施例中,所述统ー编程接ロ包括上下文接ロ、用于解析输入数据并生成输出数据的接ロ、文件访问接ロ和输入输出字节流接ロ。在优选的实施例中,所述执行封装模块包括文件列表生成模块,用于获取输入文件列表,生成待处理文件列表;切分模块,用于根据分布式计算平台中的mapper数目切分所述待处理文件列表,并将所述切分后的待处理文件列表提交给所述分布式计算平台。在优选的实施例中,所述执行封装模块还包括配置信息收集模块,用于通过命令行參数收集输入的配置信息;封装脚本生成模块,用于根据所述配置信息,对所述分布式计算平台中的mapper和reducer分别生成封装脚本,并将所述封装脚本提交给所述分布式计算平台。在优选的实施例中,所述切分后的待处理文件列表中记录了待处理文件的文件路径;所述执行封装模块还包括处理模块,用于通过所述分布式计算平台获取切分后的待处理文件列表,根据所述待处理文件的文件路径对所述待处理文件进行处理,输出处理結果。上述分布式计算方法及系统,通过构建各分布式计算平台的统ー编程接ロ,可将各个分布式计算平台通用的基本功能(通常也是最常用最重要的功能)加入到统ー编程接ロ中,并根据不同的分布式计算平台封装统ー编程接ロ的具体实现,使得构建的统ー编程接ロ隔离了不同的分布式计算平台的具体实现;利用统ー的接ロ来进行编程,开发人员无需关心分布式计算平台的很多具体细节与方言;在执行所生成的分布式应用程序时,分发脚本隔离了不同的分布式计算平台提交任务时的差异性,使得所生成的分布式应用程序在不改动或极少改动的情况下可以在不同的分布式计算平台上执行,因此提高了不同的分布式计算平台之间的可移植性。附图说明图I为ー个实施例中分布式计算方法的流程示意图;图2为图I中通过统ー编程接ロ实现平台相关的功能的框架图;图3为ー个实施例中ISolver接ロ实现其功能的流程示意图4为一个实施例中调用分发脚本将分布式应用程序提交到分布式计算平台的流程示意图;图5为另一个实施例中调用分发脚本将分布式应用程序提交到分布式计算平台的流程示意图;图6为一个实施例中分布式计算系统的结构示意图;图7为一个实施例中执行封装模块的结构示意图。具体实施方式在一个实施例中,如图I所示,一种分布式计算方法,包括以下步骤步骤S102,基于不同分布式计算平台的通用功能,构建多个分布式计算平台间的 统一编程接口。步骤S104,根据用户的应用需求,通过所述统一编程接口进行编程,构建分布式应用程序。步骤S106,调用分发脚本将分布式应用程序提交到分布式计算平台,启动待执行的任务,在分布式计算平台下执行分布式应用程序。不同的分布式计算平台是具有一定的共性的,即不同的分布式计算平台可以实现一些通用功能,这些通用功能也是最常用最重要的基本功能。例如,支持MapReduce ( 一种计算模型,用于大规模数据处理)的分布式计算平台大多有以下共性具有分布式文件系统,每个文件系统都有对应的访问接口 ;MapReduCe程序处理输入数据并输出键值对(Key-value pair)或将结果直接输出到分布式文件系统中;具有从外界传入任务的配置参数的功能;具有任务的相关的统计信息与状态信息;提交任务时要提供mapper (MapReduce中用于实现Map步骤的用户应用程序)、reducer (MapReduce中用于实现Reduce步骤的用户应用程序,并可指定由多少个mapper、reducer并行执行等。基于分布式计算平台的这些共性,构建多个分布式计算平台间的统一编程接口,使得这些编程接口具有各个分布式计算平台的通用的基本功能(通常也是最常用最重要的功能)。如图2所示,左侧表示的是底层的分布式计算平台和分布式文件系统。对于一些分布式计算平台,其分布式文件系统是包含在平台之中的,图2中只是功能模块的划分,并非具体的系统结构,下文不再赘述。如图2所示,右侧部分展示了框架的统一编程接口,包括IContext接口、ISolver接口、I/O Stream 接口和 IFile 接口。其中IContext 接口为上下文接口,图 2 中的 HadoopContext 类与 NativeContext 类都是这个接口的具体实现。IContext接口所定义的功能包括初始化/反初始化功能,用于初始化、析构自己的数据结构;更新任务状态功能,用于向分布式文件系统反馈当前任务的执行状态;更新计数器功能,用于统计一些任务信息,例如处理了多少记录等;输出收集功能,用于收集输出的键值对;读取配置信息功能,用于读取执行期的配置信息;输入全局配置信息功本文档来自技高网...

【技术保护点】
一种分布式计算方法,包括以下步骤:基于不同分布式计算平台的通用功能,构建多个分布式计算平台间的统一编程接口;根据用户的应用需求,通过所述统一编程接口进行编程,构建分布式应用程序;调用分发脚本将所述分布式应用程序提交到分布式计算平台,启动待执行的任务,在所述分布式计算平台下执行所述分布式应用程序。

【技术特征摘要】

【专利技术属性】
技术研发人员:沈雷
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1