分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序的制作方法

文档序号:9713540阅读:423来源:国知局
分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序的制作方法
【技术领域】
[0001]本发明涉及分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序。更具体地讲,本发明涉及能够通过减小通信量高速执行处理的分布式处理系统等。
【背景技术】
[0002]需要由计算机实现的处理已经变得越来越复杂且大规模。然而,仅仅作为硬件的性能(计算能力、存储量等)的提高已经达到极限。因此,近来,已经特别开发出借助网络相互连接的多个计算机以分配方式协作执行处理所采用的分布式处理的技术(分布式数据库、分布式高速缓存、分布式共享存储器、分布器批处理等)。
[0003]近来,特别地,变得可以在个人计算机领域中以低价获得容量是4GB级别的RAM(主存储单元)、容量是1TB级别的硬盘(外部存储器设备)、通信速度是lGbps级别的NIC(网卡)等并且可以容易地借助高速网络将设置有它们的计算机设备相互连接。因此,变得常见的是,连接多个这种节点(服务器设备)并且针对各节点采用分布式处理中间件以使其执行分布式处理。
[0004]中间件是典型地设置在操作系统(0S)和应用软件之间并且执行0S功能和应用软件的多用途功能的扩展形式的软件。在这些之中,分布式处理中间件提供分布式处理(多个节点之间的数据同步、应用的分布/配置、进程的开始/结束、错误处理等)中需要的功能。近来,特别地,用大量节点以协作方式执行处理的所谓云计算变得发达,使得分布式处理中间件的重要性尤其愈发增大。
[0005]作为使用分布式处理中间件的分布式处理系统可执行的分布式处理方法,存在诸如MapReduce、BSP和MPI的多种方法。在这些之中,主-从型分布式处理方法也是典型方法。
[0006]主-从型是被称为主的控制组件或节点控制其他节点所采用的处理模式中的一种,并且处理所谓的从。当在节点之间或者在进程之间创建主-从关系时,一直由主对从进行控制。
[0007]图20是示出现有分布式处理系统900的结构的说明图。分布式处理系统900是通过借助网络930将多个计算机设备相互连接而构成的。计算机设备中的一个是主节点910,其他是从节点920a、920b—(—般来讲,被称为从节点920)。
[0008]分布式处理中间件912安装在主节点910的OS911(操作系统)上。类似地,分布式处理中间件922安装在从节点920的0S 921上。
[0009]主节点910将分布式应用分布于从节点920,使其执行必要处理。然而,通过从节点处理的部分与通过主节点处理的部分并不完全相同,而是常常可以是处理的部分或数据的部分。通过在各节点执行不同处理或者处理不同数据,可分布式并行进行多种处理。因此,可高速执行处理。
[0010]图21是示出通过图20中示出的分布式处理系统900执行的分布式应用950的结构的说明图。分布式应用950是通过组合处理模块、公共模块、配置文件、二进制数据(图像文件等)等的多个集合而构成的。
[0011]模块中的每个是执行格式文件、公共库文件等。在Windows(注册商标)的情况下,例如,它是ΕΧΕ文件、DLL文件等。在Linux(注册商标)的情况下,它是外壳脚本、执行文件、库文件等。在Java(注册商标)的情况下,它是Jar文件、Class文件等。
[0012]在任何情况下,模块中的每个由“元数据”和“执行区域”构成。元数据是诸如模块名称、签名(方法名称和参数的集合)、域、常数等关于模块的数据。执行区域是诸如实际操作方法的执行代码。
[0013]另外,各模块包括在执行时进行的初始化处理。更具体地讲,Windows的DLL初始化是DllMainO,Linux的库初始化是_init(),Java的初始化是例如<clinit>、〈init>。
[0014]当分布式应用950启动时,加载首先在各节点中启动的处理模块的元数据以分析元数据,在能够实际执行处理的存储器中设置常数和执行区域。如果其中包括对于另一个模块的依赖关系,则重复进行加载该模块并且解决该依赖关系以成为可进行模块之间的调用(称为“联系”)的状态的动作。
[0015]一般,各模块具有用于初始化处理的部分。通过在链接之后执行初始化处理,有关的应用成为可执行状态。也就是说,通过重复“读出必要文件(加载)—解决各模块的依赖关系(联系)—执行初始化处理(初始化)”的动作,分布式应用950变得可执行。
[0016]然而,各模块的加载时机取决于各设备的实现方式,存在在启动时加载全部必要模块的情况和在实际涉及模块之前一直不加载模块的情况。
[0017]作为其相关技术文献,存在以下文献。专利文献2中描绘了基于设定规则选择对象数据并且提高使用它进行处理的效率的分布式处理系统。专利文献2中描绘了通过使用图形用户界面执行对分布式处理的管理的技术。
[0018]专利文献4中描绘了使用设置有专用于特定处理的子处理器的处理设备的分布式处理系统。专利文献5中描绘了网络服务在网络上的部署。专利文献6中描绘了如果在自身设备中没有提供必要信息则从其他设备获取分布式处理设备中需要的信息以在所有设备之间进行信息共享的技术。
[0019]专利文献7中描绘了关于多层软件的元数据的布局的技术。非专利文献1中描绘了作为典型分布式处理中间件的Hadoop的概况。
[0020]专利文献1:日本未经审查的专利公开2012-063832
[0021]专利文献2:日本未经审查的专利公开2011-034137
[0022]专利文献3:日本未经审查的专利公开2008-171277
[0023]专利文献4:日本未经审查的专利公开2006-155187
[0024]专利文献5:日本未经审查的专利公开2004-533687
[0025]专利文献6:日本未经审查的专利公开2004-342042
[0026]专利文献7:日本未经审查的专利公开2003-505750
[0027]非专利文献1: “Let ’ s Try Distributed Processing”(尝试进行分布式处理),Takeshi ffakimot0.,2010年9月29 日(2013年5月 14 日搜索),Pasona TECH,〈URL:http://www.pasonatech.c0.jp/techlab/rdtrend/rep7.jsp>
[0028]在当前的描述中,假设在诸如上述非专利文献1中描绘的Hadoop的Java环境下运行的分布式操作系统900,使得要注意将处理模块和公共模块中的每个编写为类(.class)文件。然而,要注意,本发明不一定限于Java环境。
[0029]图21中示出的分布式应用950包括第一步至第三步的处理模块951至953(stepOl.class至step03.class)、用于各步的第一公共模块954至第三公共模块956(sharedOl.class至shared03.class)、其他配置文件、二进制数据等。
[0030]另外,分布式应用950还包括第二步的从节点方的处理模块952a(step02_slave.class),因为在仅仅由主节点910执行第一步和第三步的同时,主节点919和从节点920中的每个通过以协作方式执行分布式处理来执行第二步。上述文件中的每个被置于文件名为诸如“distributed batch applicat1n l.jar”等的一个文件中。
[0031]图22是示出通过图20中示出的现有分布式处理系统900执行图21中示出的分布式应用950的情况的动作的说明图。主节点910在从用户接收到执行命令时将分布式应用950的文件(distributed batch applicat1n 1.jar)分布于各从节点920。在各节点中,各分布式处理中间件912(922)启动处理,扩展分布式应用950的文件,加载类文件并且执行它。
[0032]然而,如图21中所示,并非分布式应用950的所有步骤都执行分布式处理。因此,如果仅仅分布式应用950的文件(distributed batch applicat1n 1.jar)被分布于各节点,则分布式处理中未使用的文件被另外传递。这显然是无用传递。尤其是,当包含诸如图像、移动图片、音频等大尺寸文件时,除非使用此文件,否则是浪费。
[0033]另外,当在执行时传递文件时,从节点920出现启动处理延迟的问题。参照图21中示出的情况,在第二步中执行分布式处理。当在完成第一步并且开始第二步的时间点,主节点910将分布式应用950的文件分布于各从节点920时,在分布处理中和扩展“distributedbatch applicat1n 1.jar”文件并且加载类文件的阶段执行的处理中,产生延迟。
[0034]为了不造成延迟,考虑分布分布式应用950的文件并且将在仅仅主节点910执行第一步的同时在各从节点920方完成类文件的扩展和加载所采用的方法。然而,这会造成其他问题。
[0035]在分布式处理中,从节点920的数量经常会变成数千个、数万个,或者可以是比这些大的规模。另外,分布式处理中间件912(922)—般在实际要执行分布处理的时间点检查各节点的资源(计算器资源)的状况之后将处理分配给设定数量的从节点。也就是说,在该时间点之前,一直不可得知哪些从节点执行分布式处理。
[0036]因此,如果分布式应用950的文件被预先无条件地分布于各从节点920,则文件甚至可预先分布于实际没有被分配处理的从节点920。这也是无用传递。也就是说,并不认为为了不造成从节点920的启动处理延迟而预先分布分布式应用950的文件是适宜的。
[0037]另外,执行在许多情况下各节点(主节点910和从节点920中的每个)以协作方式执行的分布式处理,以对不同的目标数据执行相同处理,使得在各节点中启动时执行的启动处理常常是公共处理。
[0038]无视于此,从节点920中的每个的分布式处理中间件922—般通过操作步骤中的每个来产生和删除进程。因此,节点中的每个针对操作步骤中的每个每次都执行相同的启动处理。这也是作为延迟成因的无用处理。
[0039]在上述的专利文献1至7和非专利文献1中没有描绘能够克服上述问题并且既实现减少在执行时将传递到各从节点的数据量又实现开始高速进行分布式处理的技术。
[0040]因此,本发明的目的是提供能够减少在执行时将传递到各从节点的数据量并且开始高速进行分布式处理的分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序。

【发明内容】

[0041]为了实现以上目的,根据本发明的分布式处理系统是一种以下的分布式处理系统,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:所述计算机中的每个包括模块加载器、元数据管理单元、文件管理单元和执行容器,所述模块加载器通过加载构成所述分布式批处理应用的各模块来执行初始化处理,所述元数据管理单元从预先设置的存储模块或者从其他计算机获取包含各模块之间的所述初始化处理的命令的元数据,所述文件管理单元读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中,所述执行容器执行所述分布式批处理应用;以及所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当不存在所述执行区域时,从其他计算机加载所述执行代码并且将它作为所述执行区域写入。
[0042]为了实现以上目的,根据本发明的分布式处理设备是以下的一种分布式处理设备,多个所述分布式处理设备相互连接以构成以协作分布式方式执行分布式批处理应用的分布式处理系统,所述分布式处理设备包括:模块加载器,其通过加载构成所述分布式批处理应用的各模块来执行初始化处理;元数据管理单元,其从预先设置的存储模块或者从其他计算机获取包含各模块之间的所述初始化处理的命令的元数据;文件管理单元,其读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中;以及执行容器,其执行所述分布式批处理应用;其中,所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1