[发明专利]一种分布式计算系统中对象传递的方法无效
申请号: | 201010610679.8 | 申请日: | 2010-12-29 |
公开(公告)号: | CN102033959A | 公开(公告)日: | 2011-04-27 |
发明(设计)人: | 谢天 | 申请(专利权)人: | 北京播思软件技术有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30;H04L29/08 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 王金双 |
地址: | 100102 北京市*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 分布式 计算 系统 对象 传递 方法 | ||
技术领域
本发明涉及一种分布式计算系统,尤其涉及一种分布式计算系统中对象传递的方法。
背景技术
分布式计算,是把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些小的部分分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果,它是一门计算机科学。
分布式计算系统(Map/Reduce),是一个用于大规模数据处理的分布式计算模型,作为目前最为常见的分布式计算系统,它最初是由Google工程师设计并实现的。其中对它的定义是,Map/Reduce是一个编程模型(programming model),是一个用于处理和生成大规模数据集(processing and generating large data sets)的相关的实现。用户定义一个map函数来处理一个key/value对以生成一批中间的key/value对,再定义一个reduce函数将所有这些中间的有着相同key的values合并起来。很多现实世界中的任务都可用这个模型来表达。
Hadoop,是由Apache基金会开发,采用JAVA开发语言实现了分布式文件系统HDFS和Map-Reduce分布式计算平台,用户只要继承该系统提供的基类MapReduceBase,分别实现Map和Reduce的两个类,并注册Job即可自动分布式运行定制的任务。
Hadoop的Map/Reduce实现中,对于每一个具体的作业(Job),均需要在不同的节点之间传递运行时所需的配置信息,它是通过job.xml来实现的,即由作业(Job)发起端将运行时所需信息,例如作业(Job)名称,输入/输出格式,Map/Reduce任务个数等等,写入一个job.xml文件,然后传递到不同的系统节点。job.xml是标准的XML(可扩展标准语言)文件,每一项具体信息均以XML的元素(element)形成存在其中。系统中其他运行节点从这个job.xml文件中读取相关信息,用以配置该节点上面运行的部分任务,从而实现真个Map/Reduce的分布式运行。图1为现有分布式计算系统基本结构示意图,如图1所示,分布式计算系统一般包括客户端、作业服务器和任务服务器。客户端将作业及其相关内容和配置写入一个job.xml,提交到作业服务器去,并时刻监控执行的状况;作业服务器,在Hadoop中称为JobTracker或Master,负责将作业文件(xml文件)分发到多个任务服务器,作业服务器负责管理运行在此框架下所有作业;任务服务器,具体的负责执行用户定义操作的,每一个作业被拆分成很多的任务,包括Map任务和Reduce任务等,任务是具体执行的基本单元,它们都需要分配到合适任务服务器上去执行,任务服务器一边执行一边向作业服务器汇报各个任务的状态,以此来帮助作业服务器了解作业执行的整体情况,分配新的任务等。
现有的分布式计算系统,即Hadoop Map/Reduce系统中无法传递对象(class)实例,job.xml仅仅只能用来传递有限的简单数据类型,例如int, long, float, String, boolean等,由于XML对于传输的字符,即每个元素(element)中的字符是有一定限制的,不能够随便将内存中一段缓存(buffer)拷贝至xml中进行传递,那样会造成XML编解码失败,不能进行传输。
然而用户定制的应用一般不只是有上述这些简单的数据类型,用户的应用中经常会需要在Map-Reduce系统的各个节点之间传递复杂的对象(class)实例,进行一些高级的分布式计算,则目前Hadoop的Map/Reduce实现则不能提供这种功能。
发明内容
为了解决现有技术存在的不足,本发明的目的在于提供一种分布式计算系统中对象传递的方法,可以使分布式计算系统的各个节点之间传递复杂的对象实例。
为实现上述目的,本发明提供的一种分布式计算系统中对象传递的方法,该方法包括以下步骤:
将对象序列化、编码,写入作业文件;
传送含有编码序列的作业文件;
将含有编码序列的作业文件中的编码序列进行解码和反序列化,提取并使用对象内容。
其中,所述将对象序列化、编码是由客户端将对象分解成字节流,然后再将所述字节流经过编码,转换成ASCII字符。
其中,所述作业文件是标准的XML文件。
其中,所述将对象编码是采用Base64编码。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京播思软件技术有限公司,未经北京播思软件技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010610679.8/2.html,转载请声明来源钻瓜专利网。