CN105474177A - 分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序 - Google Patents

分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序 Download PDF

Info

Publication number
CN105474177A
CN105474177A CN201480031306.1A CN201480031306A CN105474177A CN 105474177 A CN105474177 A CN 105474177A CN 201480031306 A CN201480031306 A CN 201480031306A CN 105474177 A CN105474177 A CN 105474177A
Authority
CN
China
Prior art keywords
distributed
module
metadata
execution
management unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480031306.1A
Other languages
English (en)
Other versions
CN105474177B (zh
Inventor
安田纯一
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Publication of CN105474177A publication Critical patent/CN105474177A/zh
Application granted granted Critical
Publication of CN105474177B publication Critical patent/CN105474177B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/549Remote execution

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)
  • Stored Programmes (AREA)

Abstract

为了提供能够减少要传输的数据容量并且以告诉开始分布式处理的分布式处理系统等。一种多个计算机(2a、2b、…)互连的分布式处理系统(1),其中计算机(2)中的每一个设置有加载每个模块并且执行初始化处理的模块加载器(3)、从先前提供的存储装置或另一计算机获取包括用于初始化处理的命令的元数据的元数据管理单元(4)、读取并且写入存储装置或其他计算机内的文件的文件管理单元(5)、以及执行分布式批处理应用的执行容器(6)。文件管理单元(5)在所述初始化处理之后,检查在所述存储装置中是否存在包括相应模块的执行代码的执行区域,并且当执行区域不存在时,从其他计算机加载执行代码,并且写入所加载的执行代码作为执行区域。

Description

分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序
技术领域
本发明涉及分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序。更具体地讲,本发明涉及能够通过减小通信量高速执行处理的分布式处理系统等。
背景技术
需要由计算机实现的处理已经变得越来越复杂且大规模。然而,仅仅作为硬件的性能(计算能力、存储量等)的提高已经达到极限。因此,近来,已经特别开发出借助网络相互连接的多个计算机以分配方式协作执行处理所采用的分布式处理的技术(分布式数据库、分布式高速缓存、分布式共享存储器、分布器批处理等)。
近来,特别地,变得可以在个人计算机领域中以低价获得容量是4GB级别的RAM(主存储单元)、容量是1TB级别的硬盘(外部存储器设备)、通信速度是1Gbps级别的NIC(网卡)等并且可以容易地借助高速网络将设置有它们的计算机设备相互连接。因此,变得常见的是,连接多个这种节点(服务器设备)并且针对各节点采用分布式处理中间件以使其执行分布式处理。
中间件是典型地设置在操作系统(OS)和应用软件之间并且执行OS功能和应用软件的多用途功能的扩展形式的软件。在这些之中,分布式处理中间件提供分布式处理(多个节点之间的数据同步、应用的分布/配置、进程的开始/结束、错误处理等)中需要的功能。近来,特别地,用大量节点以协作方式执行处理的所谓云计算变得发达,使得分布式处理中间件的重要性尤其愈发增大。
作为使用分布式处理中间件的分布式处理系统可执行的分布式处理方法,存在诸如MapReduce、BSP和MPI的多种方法。在这些之中,主-从型分布式处理方法也是典型方法。
主-从型是被称为主的控制组件或节点控制其他节点所采用的处理模式中的一种,并且处理所谓的从。当在节点之间或者在进程之间创建主-从关系时,一直由主对从进行控制。
图20是示出现有分布式处理系统900的结构的说明图。分布式处理系统900是通过借助网络930将多个计算机设备相互连接而构成的。计算机设备中的一个是主节点910,其他是从节点920a、920b--(一般来讲,被称为从节点920)。
分布式处理中间件912安装在主节点910的OS911(操作系统)上。类似地,分布式处理中间件922安装在从节点920的OS921上。
主节点910将分布式应用分布于从节点920,使其执行必要处理。然而,通过从节点处理的部分与通过主节点处理的部分并不完全相同,而是常常可以是处理的部分或数据的部分。通过在各节点执行不同处理或者处理不同数据,可分布式并行进行多种处理。因此,可高速执行处理。
图21是示出通过图20中示出的分布式处理系统900执行的分布式应用950的结构的说明图。分布式应用950是通过组合处理模块、公共模块、配置文件、二进制数据(图像文件等)等的多个集合而构成的。
模块中的每个是执行格式文件、公共库文件等。在Windows(注册商标)的情况下,例如,它是EXE文件、DLL文件等。在Linux(注册商标)的情况下,它是外壳脚本、执行文件、库文件等。在Java(注册商标)的情况下,它是Jar文件、Class文件等。
在任何情况下,模块中的每个由“元数据”和“执行区域”构成。元数据是诸如模块名称、签名(方法名称和参数的集合)、域、常数等关于模块的数据。执行区域是诸如实际操作方法的执行代码。
另外,各模块包括在执行时进行的初始化处理。更具体地讲,Windows的DLL初始化是DllMain(),Linux的库初始化是_init(),Java的初始化是例如<clinit>、<init>。
当分布式应用950启动时,加载首先在各节点中启动的处理模块的元数据以分析元数据,在能够实际执行处理的存储器中设置常数和执行区域。如果其中包括对于另一个模块的依赖关系,则重复进行加载该模块并且解决该依赖关系以成为可进行模块之间的调用(称为“联系”)的状态的动作。
一般,各模块具有用于初始化处理的部分。通过在链接之后执行初始化处理,有关的应用成为可执行状态。也就是说,通过重复“读出必要文件(加载)→解决各模块的依赖关系(联系)→执行初始化处理(初始化)”的动作,分布式应用950变得可执行。
然而,各模块的加载时机取决于各设备的实现方式,存在在启动时加载全部必要模块的情况和在实际涉及模块之前一直不加载模块的情况。
作为其相关技术文献,存在以下文献。专利文献2中描绘了基于设定规则选择对象数据并且提高使用它进行处理的效率的分布式处理系统。专利文献2中描绘了通过使用图形用户界面执行对分布式处理的管理的技术。
专利文献4中描绘了使用设置有专用于特定处理的子处理器的处理设备的分布式处理系统。专利文献5中描绘了网络服务在网络上的部署。专利文献6中描绘了如果在自身设备中没有提供必要信息则从其他设备获取分布式处理设备中需要的信息以在所有设备之间进行信息共享的技术。
专利文献7中描绘了关于多层软件的元数据的布局的技术。非专利文献1中描绘了作为典型分布式处理中间件的Hadoop的概况。
专利文献1:日本未经审查的专利公开2012-063832
专利文献2:日本未经审查的专利公开2011-034137
专利文献3:日本未经审查的专利公开2008-171277
专利文献4:日本未经审查的专利公开2006-155187
专利文献5:日本未经审查的专利公开2004-533687
专利文献6:日本未经审查的专利公开2004-342042
专利文献7:日本未经审查的专利公开2003-505750
非专利文献1:“Let’sTryDistributedProcessing”(尝试进行分布式处理),TakeshiWakimoto.,2010年9月29日(2013年5月14日搜索),PasonaTECH,<URL:http://www.pasonatech.co.jp/techlab/rdtrend/rep7.jsp>
在当前的描述中,假设在诸如上述非专利文献1中描绘的Hadoop的Java环境下运行的分布式操作系统900,使得要注意将处理模块和公共模块中的每个编写为类(.class)文件。然而,要注意,本发明不一定限于Java环境。
图21中示出的分布式应用950包括第一步至第三步的处理模块951至953(step01.class至step03.class)、用于各步的第一公共模块954至第三公共模块956(shared01.class至shared03.class)、其他配置文件、二进制数据等。
另外,分布式应用950还包括第二步的从节点方的处理模块952a(step02_slave.class),因为在仅仅由主节点910执行第一步和第三步的同时,主节点919和从节点920中的每个通过以协作方式执行分布式处理来执行第二步。上述文件中的每个被置于文件名为诸如“distributedbatchapplication1.jar”等的一个文件中。
图22是示出通过图20中示出的现有分布式处理系统900执行图21中示出的分布式应用950的情况的动作的说明图。主节点910在从用户接收到执行命令时将分布式应用950的文件(distributedbatchapplication1.jar)分布于各从节点920。在各节点中,各分布式处理中间件912(922)启动处理,扩展分布式应用950的文件,加载类文件并且执行它。
然而,如图21中所示,并非分布式应用950的所有步骤都执行分布式处理。因此,如果仅仅分布式应用950的文件(distributedbatchapplication1.jar)被分布于各节点,则分布式处理中未使用的文件被另外传递。这显然是无用传递。尤其是,当包含诸如图像、移动图片、音频等大尺寸文件时,除非使用此文件,否则是浪费。
另外,当在执行时传递文件时,从节点920出现启动处理延迟的问题。参照图21中示出的情况,在第二步中执行分布式处理。当在完成第一步并且开始第二步的时间点,主节点910将分布式应用950的文件分布于各从节点920时,在分布处理中和扩展“distributedbatchapplication1.jar”文件并且加载类文件的阶段执行的处理中,产生延迟。
为了不造成延迟,考虑分布分布式应用950的文件并且将在仅仅主节点910执行第一步的同时在各从节点920方完成类文件的扩展和加载所采用的方法。然而,这会造成其他问题。
在分布式处理中,从节点920的数量经常会变成数千个、数万个,或者可以是比这些大的规模。另外,分布式处理中间件912(922)一般在实际要执行分布处理的时间点检查各节点的资源(计算器资源)的状况之后将处理分配给设定数量的从节点。也就是说,在该时间点之前,一直不可得知哪些从节点执行分布式处理。
因此,如果分布式应用950的文件被预先无条件地分布于各从节点920,则文件甚至可预先分布于实际没有被分配处理的从节点920。这也是无用传递。也就是说,并不认为为了不造成从节点920的启动处理延迟而预先分布分布式应用950的文件是适宜的。
另外,执行在许多情况下各节点(主节点910和从节点920中的每个)以协作方式执行的分布式处理,以对不同的目标数据执行相同处理,使得在各节点中启动时执行的启动处理常常是公共处理。
无视于此,从节点920中的每个的分布式处理中间件922一般通过操作步骤中的每个来产生和删除进程。因此,节点中的每个针对操作步骤中的每个每次都执行相同的启动处理。这也是作为延迟成因的无用处理。
在上述的专利文献1至7和非专利文献1中没有描绘能够克服上述问题并且既实现减少在执行时将传递到各从节点的数据量又实现开始高速进行分布式处理的技术。
因此,本发明的目的是提供能够减少在执行时将传递到各从节点的数据量并且开始高速进行分布式处理的分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序。
发明内容
为了实现以上目的,根据本发明的分布式处理系统是一种以下的分布式处理系统,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:所述计算机中的每个包括模块加载器、元数据管理单元、文件管理单元和执行容器,所述模块加载器通过加载构成所述分布式批处理应用的各模块来执行初始化处理,所述元数据管理单元从预先设置的存储模块或者从其他计算机获取包含各模块之间的所述初始化处理的命令的元数据,所述文件管理单元读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中,所述执行容器执行所述分布式批处理应用;以及所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当不存在所述执行区域时,从其他计算机加载所述执行代码并且将它作为所述执行区域写入。
为了实现以上目的,根据本发明的分布式处理设备是以下的一种分布式处理设备,多个所述分布式处理设备相互连接以构成以协作分布式方式执行分布式批处理应用的分布式处理系统,所述分布式处理设备包括:模块加载器,其通过加载构成所述分布式批处理应用的各模块来执行初始化处理;元数据管理单元,其从预先设置的存储模块或者从其他计算机获取包含各模块之间的所述初始化处理的命令的元数据;文件管理单元,其读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中;以及执行容器,其执行所述分布式批处理应用;其中,所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当不存在所述执行区域时,从其他计算机加载所述执行代码并且将它作为所述执行区域写入。
为了实现以上目的,根据本发明的分布式处理方法是一种用于分布式处理系统的分布式处理方法,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:元数据管理单元获取包含构成所述分布式批处理应用的各模块之间的初始化处理的命令的元数据;模块加载器用所述元数据来执行初始化处理;在所述初始化处理之后,文件管理单元检查在存储模块中是否存在包含所述模块的执行代码的执行区域;当不存在包含所述执行代码的所述执行区域时,所述文件管理单元从其他计算机加载所述执行代码并且将它作为所述执行区域写入;以及执行容器执行包含所述执行代码的模块。
为了实现以上目的,根据本发明的分布式处理程序是一种用于分布式处理系统的分布式处理程序,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,所述程序致使所述计算机执行:用于获取包含构成所述分布式批处理应用的各模块之间的初始化处理的命令的元数据的处理;用于用所述元数据执行所述初始化处理的处理;用于在所述初始化处理之后检查在存储模块中是否存在包含所述模块的执行代码的执行区域的处理;用于当所述存储模块中不存在所述执行区域时从其他计算机加载所述执行代码并且将它作为所述执行区域写入的处理;以及用于执行包含所述执行代码的模块的处理。
本发明被构造成如上所述只用元数据执行试探性初始化处理并且如果没有执行代码则从其他计算机加载执行代码。因此,指定代码没有被发送到不执行处理的计算机。这样可以提供表现出优异特征使得能够减小在执行时将传递到各从节点的数据量并且高速开始分布式处理的分布式处理系统、分布式处理设备、分布式处理方法和分布式处理程序。
附图说明
图1是示出根据本发明的基本模式的分布式处理系统的结构的说明图;
图2是示出根据本发明的第一实施例的分布式处理系统的结构的说明图;
图3是示出图2中示出的主节点和从节点的更详细结构的说明图;
图4是示出作为图2至图3中示出的分布式处理系统的执行目标的分布式批处理应用的结构的说明图;
图5是示出在图2至图3中示出的分布式处理系统中操作图4中示出的分布式批处理应用的情况下执行的处理的流程图;
图6是继图5之后的流程图;
图7是示出在完成直至图5中的步骤S106的处理的状态下的元数据共享单元的说明图;
图8是示出其中通过图4中示出的分布式批处理应用定义“执行区域加载命令”的第一主模块(step1.class)的说明图;
图9是示出处于直至图5中示出的步骤S113的处理被完成和执行区域被覆写的状态下的第一主模块(step1.class)的说明图;
图10是示出其中通过图4中示出的分布式批处理应用定义“执行区域加载命令”的第二主模块(step2.class)的说明图;
图11是示出仅仅通过图5中示出的步骤S115的处理创建的元数据的从模块(step2_slave.class)的说明图;
图12是示出处于图5中示出的步骤S113的处理被完成并且设置执行区域的状态下的从模块(step2_slave.class)的说明图;
图13是示出根据本发明的第二实施例的分布式处理系统的结构的说明图;
图14是示出图13中示出的主节点和从节点的更详细结构的说明图;
图15是示出在图13至图14中示出的分布式处理系统中操作的分布式批处理应用的结构的说明图;
图16是示出在图13至图14中示出的分布式处理系统中操作图15中示出的分布式批处理应用的情况下执行的处理的流程图;
图17是继图16之后的流程图;
图18是示出完成分布式批处理应用320的动作的状态下元数据共享单元的说明图;
图19是示出在分布式批处理应用320的动作之后完成分布式批处理应用330的动作的状态下元数据共享单元的说明图;
图20是示出现有分布式处理系统的结构的说明图;
图21是示出图20中示出的分布式处理系统执行的分布式应用的结构的说明图;以及
图22是示出通过图20中示出的现有分布式处理系统执行图21中示出的分布式应用时的动作的说明图。
具体实施方式
(基本模式)
下文中,将参照附图图1描述本发明的基本模式的结构。
根据基本模式的分布式处理系统1是其中多个计算机2a、2b—相互连接并且这些计算机以协作分布式方式执行分布式批处理应用的分布式处理系统。计算机2中的每个包括:模块加载器3,其加载构成分布式批处理应用并且执行初始化处理的各模块;元数据管理单元4,其从预先设置的存储模块或者从其他计算机获取包含各模块之间的初始化处理的命令的元数据;文件管理单元5,其读取存储模块或其他计算机中的文件/将文件写入存储模块或其他计算机中;执行容器6,其执行分布式批处理应用。另外,文件管理单元114设置有以下功能:在模块加载器用元数据执行初始化处理之后,检查在存储模块中是否存在包含模块的执行代码的执行区域,并且如果发现不存在执行代码,则从其他计算机加载该执行代码并且将它作为执行区域进行写。
下面,将把各单元和各设备的更详细结构作为第一实施例进行描述。
(第一实施例)
随后,将参照附图图2至图3描述本发明的第一实施例的结构。
根据实施例的分布式处理系统100是其中多个计算机(主节点10和从节点20)相互连接并且这些计算机以分布式协作方式执行分布式批处理应用120的分布式处理系统。计算机2中的每个包括:模块加载器112,其加载构成分布式批处理应用并且执行初始化处理的各模块;元数据管理单元113,其从预先设置的存储模块或者从其他计算机获取包含各模块之间的初始化处理的命令的元数据;文件管理单元114,其读取存储模块或其他计算机中的文件/将文件写入存储模块或其他计算机中;执行容器111,其执行分布式批处理应用。另外,文件管理单元114设置有以下功能:在模块加载器用元数据执行初始化处理之后,检查在存储模块中是否存在包含模块的执行代码的执行区域,并且如果发现不存在执行代码,则从其他计算机加载该执行代码并且将它作为执行区域进行写。
另外,文件管理单元114具有创建仅仅元数据的模块作为文件和通过元数据管理单元113与其他计算机共享它的功能。
另外,多个计算机中的一个是管理分布式批处理应用的分布式执行的主节点10,除了主节点外的计算机是从节点20。这里要注意,主节点10的文件管理单元114具有创建仅仅元数据的模块作为文件并且将它发送到从节点20的功能。
用上述结构,分布式处理系统变得能够减少在执行时将传递到各从节点的数据量并且开始高速进行分布式处理。
下文中,将对此进行更详细的描述。
图2是示出根据本发明的第一实施例的分布式处理系统100的结构的说明图。分布式处理系统100是通过借助网络30将多个计算机设备相互连接而构成的,没有设置关于计算机数量的特别限制。在图2中,为了以简单方式表现本发明的构思,只示出三个节点,即,主节点10(分布式处理设备)和从节点20a、20b(分布式处理设备)。一般来讲,从节点20a和20b被称为从节点20。
图3是示出图2中示出的主节点10和从节点20的更详细结构的说明图。虽然图3示出关于主节点10的结构,但就硬件而言,从节点20也具有相同结构。
主节点10包括:处理器11,其是用于执行计算机程序的主单元;存储模块12,其存储程序和数据;通信模块13,其通过连接到网络30执行与其他设备的数据通信。主节点10还设置有除了这些外的许多硬件元件。然而,本文中将只讨论为了描述本发明而需要说明的元件。另外,从节点20也包括与主节点10的处理器、存储模块和通信模块相同的处理器21、存储模块22和通信模块23。
在处理器11中,OS101(操作系统)首先进行操作,并且在此情况下,分布式处理中间件110此后进行操作。分布式处理中间件110包括诸如执行容器111、模块加载器112、元数据管理单元113和文件管理单元114的功能单元中的每个,并且使用存储模块22用作元数据共享单元115和文件夹116。另外,在分布式处理中间件110的动作的情况下,分布式批处理应用120进行操作。
在从节点20中,与主节点10的分布式处理中间件相同的分布式处理中间件110进行操作。然而,在从节点20方,只示出元数据共享单元115、文件夹116和存储模块22。然而,要注意,可通过由从节点20方执行与主节点10相同的动作,进行随后将描述的由其他节点通过元数据管理单元113和文件管理单元114获取元数据并且读取/写入文件。另外,也可在从节点20a和20b之间相互进行相同动作。
执行容器111执行分布式批处理应用120。执行容器111还可使用模块加载器112加载分布式批处理应用120的模块并且读取/写入文件。
模块加载器112加载模块、配置文件等,分析元数据,并且将它们置于文件夹116上,从而能执行。这对应于Java语言中的类加载器(ClassLoader)。“ClassLoader”在这里被扩展,使得元数据被加载到文件夹116的时机和初始化处理或重新初始化的重新安排也可自动地进行。
元数据管理单元113对模块的元数据执行管理。元数据管理单元113从元数据共享单元115或文件管理单元114获取模块的元数据并且将它提供到模块加载器112。另外,元数据管理单元还可从其他节点的元数据共享单元115获取元数据。
元数据共享单元115提供保存模块的被加载元数据并且共享它的功能。另外,元数据共享单元115提供也允许由其他节点参考被保存元数据的功能。
文件管理单元114管理自身节点或其他节点的文件夹116上的文件并且执行读取/写入。另外,还提供以下功能:用实际模块文件创建仅仅元数据的文件并且只读取/写入其他节点的文件的差异。文件夹116是由文件管理单元114管理的存储器区域。
图4是示出作为图2至图3中示出的分布式处理系统100的执行目标的分布式批处理应用120的结构的说明图。分布式批处理应用120由多个模块、配置文件、二进制文件等构成。各模块由元数据和执行区域构成。元数据是模块、初始化命令等中的每个之间的依赖关系存储在其中的区域。执行区域是实际要执行的代码存储在其中的区域。
分布式批处理应用120由第一步121至第三步123构成。在图4中,示出分布式批处理应用120和第一步121和第二步122的元数据以及执行区域。
在各步骤之后,只由主节点10执行第一步121和第三步123。然而,通过各从节点20以协作方式进行分布式处理,进行第二步122。下文中,主节点10的执行容器111被称为“主容器”并且从节点20的执行容器111被称为“从容器”。
另外,第一步121中主节点10执行的模块被称为第一主模块121a(step1.class),第二步122中主节点10执行的模块被称为第二主模块122a(step2.class),第二步122中从节点20执行的模块被称为从模块122b(step2_slave.class)。
此外,需要用共享模块122c(shared2.class)执行第二主模块122a和从模块122b。
执行容器111(主容器)扩展提供到文件夹116上的主节点10的分布式批处理应用120,并且模块文件和配置文件中的每个被保存在扩展的文件夹上。
另外,执行容器111(主容器)加载模块文件的元数据(随后将描述)并且解决(联系)依赖关系来执行初始化以启动分布式批处理应用120。元数据管理单元113的元数据共享单元115借助模块加载器112将加载在其中的元数据保存在文件夹116中,同时,将它提供到从节点20的元数据共享单元115,以保存它。
首先,仅由主节点10的执行容器111(主容器)执行第一步121。在下面的第二步122中,执行容器111(主容器)向从节点20提供执行第二步122的从执行的命令。从节点20启动执行容器111(从容器),以准备启动分布式批处理应用120。
从节点20从主节点10的元数据共享单元115获取执行第二步122所需的元数据。然后,从节点创建仅仅元数据的类文件并且将它存储到文件夹116。从节点20的执行容器111(从容器)调用用于执行从模块122b(step2_slave.class)的处理的方法。然而,要注意在要调用的方法中没有实际执行代码,该方法只提供用于加载执行区域的命令。因此,执行该命令。
也就是说,从节点20的执行容器111(从容器)从主节点10的元数据共享单元115获取从模块122b(step2_slave.class)的执行区域的数据,根据其中写入的内容将文件夹116的存储区域的数据重新初始化,并且将从模块122b(step2_slave.class)写入其中。也就是说,在从节点20中,对元数据和执行区域二者执行重新初始化。由此,获取可执行正常应用动作的状态。因此,执行从模块122b(step2_slave.class)。在从节点20a和20b中同时执行上述的处理。
在从节点20a和20b中,可使用已经由主节点10执行的数据进行元数据的获取和加载。由此,变得可以高速执行启动。另外,在调用实际要执行的代码之后,获取执行所需的代码和数据,使得实际要传递的数据量可减少。
图5至图6是示出在图2至图3中示出的分布式处理系统100中操作图4中示出的分布式批处理应用120的情况下执行的处理的流程图。图5至图6因为纸面的空白而分开在两页上示出。首先,执行容器111(主容器)加载distributedbatchapplication1.jar文件,并且将其内部的模块、配置文件等中的每个保存于文件夹116(步骤S101)。
随后,执行容器111(主容器)加载分布式批处理应用120的配置文件120a并且启动分布式批处理应用120(步骤S102)。本文中,如图1中所示,执行容器111(主容器)从第一步121起依次进行执行处理。
为了执行第一步121,执行容器111(主容器)向模块加载器112提供加载第一主模块121a(step1.class)从而成为可执行状态的命令,并且响应于此,模块加载器112加载第一主模块121a(step1.class)的元数据(步骤S103)。
此时,模块加载器112向元数据管理单元113进行关于第一主模块121a(step1.class)的存在的查询。响应于此,元数据管理单元113检查主节点10的元数据共享单元115中是否存在元数据。此时,在元数据共享单元115中不存在元数据,使得元数据管理单元113将指示“否”的响应返回到模块加载器112(步骤S104)。
模块加载器112在接收到命令时将它提供到文件管理单元114以从文件夹116上的文件加载第一主模块121a(step1.class)的元数据。文件管理单元114在文件夹116中搜索第一主模块121a(step1.class),加载元数据,并且将它提供到模块加载器112(步骤S105)。
随后,模块加载器112在存储器上扩展第一主模块121a(step1.class)的元数据并且同时将它告知元数据管理单元113。元数据管理单元113将元数据写入元数据共享单元115(步骤S106)。图7是示出在完成直至图5中的步骤S106的处理的状态下的元数据共享单元115的说明图。
随后,模块加载器112加载第一主模块121a(step1.class)的元数据并且当在元数据的“依赖关系”的部分中定义所需的共享模块和从模块时,根据定义加载必要文件或者向其他设备提供命令(步骤S107)。在该实施例的情况下,在第一主模块121a中没有特别定义依赖关系。因此,这里的执行没有特别之处,被推进到“解决依赖关系”方。
然后,模块加载器112执行试探性初始化处理(步骤S108)。实际上,不执行第一主模块121a(step1.class)的正常初始化处理,预先定义第一主模块121a(step1.class)以调用“<clinit>”并且进行所有其他方法调用“executionregionloadingcommand”。图8是示出其中在图4中示出的分布式批处理应用120中定义其“executionregionloadingcommand”的第一主模块121a(step1.class)的说明图。
这里的“executionregionloadingcommand”是通过加载在模块加载器112中指定处于能够执行应用的状态的类的执行区域来执行重新初始化的方法。以这种方式执行试探性初始化,并且由此认为正常初始化处理结束。第一步121不包括分布式处理,使得在这里不执行随后将描述的步骤S115。
由此,执行容器111(主容器)开始执行第一主模块121a(step1.class)。如图8中所示,在该实施例中,用“executionregionloadingcommand”取代实际执行代码。因此,执行容器111(主容器)向模块加载器112提供加载执行区域的命令,模块加载器112向文件管理单元114提供加载该类的执行区域的命令(步骤S109)。
当类文件的执行区域处于自身节点的文件夹116中时,文件管理单元114在接收到命令时从该类文件加载执行区域(步骤S110至S111)。如果不存在类文件或者在文件夹116中没有执行区域(仅仅元数据的类文件),则加载其他节点中的类文件的执行区域(步骤S110至S112)。
在这个实施例中,在主节点10的文件夹116中存在扩展的第一主模块121a(step1.class)。因此,文件管理单元114加载执行区域并且将它告知模块加载器112。
模块加载器112将执行区域设置于主存储器,覆写元数据,并且执行重新初始化,以成为可执行方法的状态(步骤S113)。图9是示出处于直至图5中示出的步骤S113的处理被完成时执行区域被覆写的状态下的第一主模块121a(step1.class)的说明图。然后,执行容器111(主容器)在该状态下执行第一主模块121a(step1.class)(步骤S114),并且终止关于第一步121的处理。
随后,执行容器111(主容器)开始执行关于第二步122的处理。也就是说,针对第二主模块121a(step2.class)执行与步骤S101至S106的处理相同的处理。
随后,模块加载器112用第二主模块121a(step2.class)的元数据执行解决依赖关系的处理(步骤S107)。第二主模块121a(step2.class)的元数据的“依赖关系”的部分表示取决于从模块122b(step2_slave.class)和共享模块122c(shared2.class),使得尝试从元数据共享单元115读出它们。然而,它们在其中并不存在,使得文件管理单元114读出它们并且将它们写入元数据共享单元115。
由此,解决依赖关系。因此,处理转到步骤S108,以如第一步121的情况下一样执行试探性初始化,脱离用“executionregionloadingcommand”取代所有方法的状态(步骤S108至S114)。图10是示出在图4中示出的分布式批处理应用120中定义其“executionregionloadingcommand”的第二主模块(step2.class)的说明图。在这种情况下,从模块122b(step2_slave.class)和共享模块122c(shared2.class)像它们在主节点10方一样保留。
在第二步122中,主节点10和从节点20以协作方式执行分布式并行处理。因此,主节点10的执行容器111(主容器)创建仅仅元数据的从模块122b(step2_slave.class)(执行区域只是“executionregionloadingcommand”)并且将它发送到从节点20(步骤S115)。图11是示出仅仅通过图5中示出的步骤S115的处理创建的元数据的从模块122b(step2_slave.class)的说明图。要注意,仅仅主节点10创建的元数据的从模块122b可或不可保存在主节点10方的存储模块12中。
从节点20的执行容器(从容器)在接收到从模块122b(step2_slave.class)的执行时开始执行并且执行与步骤S101至S103的步骤的处理相同的处理。在从模块122b(step2_slave.class)的元数据的“依赖关系”的部分中,需要共享模块122c(sgared2.class),使得元数据管理单元113检查在主节点10的元数据共享单元115中是否存在这些模块(步骤S101至S104)。
从节点20的模块加载器112借助元数据管理单元113获取主节点10的第二主模块121a(step2.class)、从模块122b(step2_slave.class)和共享模块122c(shared2.class)的元数据。原来,必须执行用于解决依赖关系的处理。然而,这已经被主节点10的处理解决。因此,从主节点的元数据共享单元115获取这些模块(步骤S107),由此“dependentrelationissolved”。
从节点20的模块加载器112在文件夹116上扩展从主节点10的元数据共享单元115获取的元数据,并且如主节点10的情况下一样执行尝试性初始化(步骤S108)。
从节点20的执行容器111(从容器)调用从模块122b(step2_slave.class)。然而,在其元数据中包含“executionregionloadingcommand”,使得用于加载执行区域的指令被提供到从节点20的模块加载器112(步骤S109)。
从节点20的文件管理单元114在接收到该命令时从主节点10的文件夹116读出文件类的执行区域并且将它写入自身文件夹116,因为在自身文件夹116中没有从模块122b(step2_slave.class)(步骤S113、S116)。
从节点20的模块加载器112将执行区域设置于主存储器,覆写元数据,并且执行重新初始化,以成为可执行方法的状态(步骤S113)。图12是示出处于图5中示出的步骤S113的处理被完成时设置执行区域的状态下的从模块122b(step2_slave.class)的说明图。然后,执行容器111(从容器)在该状态下执行从模块122b(step2_slave.class)(步骤S114),并且终止关于第二步122的处理。
如第一步121的情况下一样,通过主节点10执行关于第三步S123的处理。通过以上步骤,完成关于执行分布式批处理应用120的处理。
(第一实施例的整体动作和效果)
接下来,将描述上述实施例的整体动作。
在其中多个计算机相互互连并且通过这些计算机以协作分布式方式执行分布式批处理应用的分布式处理系统中展现根据实施例的分布式处理方法。元数据管理单元从构成分布式批处理应用的模块中的每个中获取包含初始化处理的命令的元数据(图5:步骤S101至S107)。模块加载器用元数据执行初始化处理(图5:步骤S108)。在初始化处理之后,文件管理单元检查在存储模块中是否存在包含模块的执行代码的执行区域(图6:步骤S109至S110)。当在存储模块中不存在包含执行代码的执行区域时,文件管理单元从其他计算机加载执行代码并且将它作为执行区域写入(图6:步骤S110至S112、S116),执行容器执行包含执行代码的模块(图6:步骤S113至S114)。
然后,在初始化处理之后,文件管理单元创建仅仅元数据的模块作为文件,并且通过元数据管理单元与其他计算机共享它(图5:步骤S115)。这里要注意,这多个计算机中的一个是管理分布式批处理应用的分布式执行的主节点,除了主节点外的计算机是从节点;通过在初始化处理之后创建仅仅元数据的模块作为文件并且将它发送到从节点的主节点的文件管理单元进行处理。
这里要注意,动作步骤中的每个可被置于供计算机执行的程序中,以使设置于直接执行各步骤的主节点10和从节点20中的每个的处理器11和12执行这些步骤。程序可被记录在诸如DVD、CD、闪存存储器等的非暂态记录介质中。在该情况下,从记录介质读出程序并且由计算机执行。用这些动作,实施例可提供以下效果。
在实施例中,主节点10首先将仅仅元数据的模块文件发送到从节点20,使得此时发送的数据量可由此减少。另外,当实际在从节点20中进行执行处理时,从主节点10获取执行代码。因此,执行代码没有被发送到实际不执行处理的从节点,使得大量发送数据可减少。
另外,分布式处理中从节点使用的元数据原则上是相同的,只有处理目标数据等是不同的。因此,对于大量从节点,可共用同一元数据,使得不必每次都执行相同的初始化处理。因此,更高速地执行初始化。另外,可存在在分布式处理中针对不同数据的相同处理被分配到同一从节点的情况。然而,即使在这种情况下,也可以通过共享相同元数据来加速进行初始化的效果。
作为实施例的扩展形式,首先,图5中示出的步骤S104至S105的处理可被限定成同时将元数据加载到元数据共享单元115和文件管理单元114并且使用首先读出的元数据。由此,可预期到加速读取的效果。另外,即使任一个导致读取错误,也可进行从其他单元进行读取。因此,可预期实现故障耐受特性的效果。
类似地,可同时读出元数据和执行区域。另外,可从自身节点读出元数据并且可从其他节点读出执行区域。
同时,用Java语言定义类文件中的固定字符串一定包含在元数据中的规则。然而,在试探性初始化时不使用固定字符串数据。因此,不包含固定字符串的元数据可从主分布到从,可通过获取执行区域的执行代码,同时获取固定字符串数据。由此,可预期发送数据量进一步减少。
另外,在图5中示出的步骤S104至S108的处理中,从主节点10加载元数据并且仅仅元数据的文件被写入本地文件夹。然而,还可同时将该文件写入本地元数据共享单元115。例如,在从节点20中出现执行错误并且重新启动的情况下,可在同一节点从元数据共享单元115重新读取元数据。因此,可高速执行加载和重新初始化处理。
(第二示例性实施例)
除了第一实施例中示出的结构之外,根据本发明的第二示例性实施例的分布式处理系统200被设计成包括可公共地由各计算机共享的分布式共享存储器230,元数据管理单元313被设计成包括使分布式共享存储器230存储元数据参考的公共文件的功能。
用这种结构,可获取与第一实施例的效果相同的效果。另外,变得可以通过在不同处理中使用相同元数据来加速处理。
下文中,将对此进行更详细的描述。
图13是示出根据本发明的第二实施例的分布式处理系统200的说明图。分布式处理系统200是通过如上述第一实施例的情况中一样将多个计算机设备相互连接而构成的。然而,这里示出多个主节点控制的不同处理在同一分布式处理系统中并行执行的情况。
因此,图13只示出诸如主节点210a、210b(一般来讲,被称作主节点210)和从节点220的三个节点。另外,可被访问的分布式共享存储器230参照来自任一个主节点210的内容并且从节点220同时连接到各设备。无须说,没有设置关于主节点210和从节点220的数量的特别限制。另外,虽然分布式共享存储器230可实际上由与诸如NAS(网络附接存储)的网络连接的外部存储设备等实现,但没有设置关于特定设备模式的特别限制。
图14是示出图13中示出的主节点210和从节点220的更详细结构的说明图。主节点210和从节点220就硬件而言具有与第一实施例的主节点10和从节点20相同的结构。因此,向相同的元件应用相同的名称和相同的参考标号,特别地省略对其的详细说明。
在处理器11(21)中,OS101(操作系统)首先进行操作,并且在此情况下,与第一实施例的分布式处理中间件110不同的分布式处理中间件310此后进行操作。分布式处理中间件310包括诸如执行容器311、模块加载器312、元数据管理单元313和文件管理单元314的功能单元中的每个。另外,上述分布式共享存储器230用作元数据共享单元315,存储模块12(22)用作文件夹316。
分布式处理中间件310的功能单元中的每个的动作原则上与第一实施例的分布式处理中间件110的功能单元中的每个的动作相同。然而,元数据共享单元315在分布式共享存储器230上,使得其内容可被操作不同分布式批处理应用的节点中的每个公共地参考。在分布式处理中间件310进行动作的情况下,分布式批处理应用320和330进行操作。
图15是示出在图13至图14中示出的分布式处理系统200中操作的分布式批处理应用320和330的结构的说明图。像第一实施例中描述的分布式批处理应用120的情况中一样,分布式批处理应用320是由第一步骤321至第三步骤323的动作步骤构成的。类似地,分布式批处理应用330也是由第一步骤331至第三步骤323的动作步骤构成的。
这里要注意,分布式批处理应用320的第一步321中主节点210a执行的模块被称为第一主模块321a(step11.class),第二步322中主节点210a执行的模块被称为第二主模块322a(step12.class),第二步322中从节点320执行的模块被称为从模块322b(step12_slave.class)。不必对第三步323之后的步骤进行特别说明,使得这里省略对其的描绘。
类似地,分布式批处理应用330的第一步331中主节点210b执行的模块被称为第一主模块331a(step21.class),第二步332中主节点210b执行的模块被称为第二主模块332a(step22.class)。
另外,第二步332中从节点320执行的从模块332b(step22_slave.class)使用与分布式批处理应用320的共享模块相同的共享模块322c(shared02.class)。不必对从模块322b(step12_slave.class)和第三步333之后的步骤进行特别说明,使得这里省略对其的描绘。
当在分布式处理系统200中操作分布式批处理应用320和330时,直至第一步321和331的动作是与第一实施例的动作相同的动作。也就是说,当主节点210a启动分布式批处理应用320时,共享模块322c(shared02.class)的元数据被存储在元数据共享单元315中。随后,当主节点210b启动分布式批处理应用330时,因为共享模块322c(shared02.class)的元数据已经被存储,所以共享模块322c可被公用。
图16和图17是示出在图13至图14中示出的分布式处理系统200中操作图15中示出的分布式批处理应用320和330时的处理的流程图。图16至图17因为纸面的空白而分开在两页上示出。图16至图17的流程图中示出的各动作与图5至图6中示出的第一实施例的各动作基本上相同,使得向相同的动作应用相同的参考标号。唯一的差异在于,被写入元数据的元数据共享单元315在分布式共享存储器230中(步骤S206)。
图18是示出完成分布式批处理应用320的动作的状态下元数据共享单元315的说明图。图19是示出在分布式批处理应用320的动作之后完成分布式批处理应用330的动作的状态下元数据共享单元315的说明图。
如图18中所示,在这个阶段的元数据共享单元315中,存储构成分布式批处理应用320的第一主模块312a(step11.class)、第二主模块322a(step12.class)、从模块322b(step12_slave.class)和共享模块322c(shared02.class)(省略对第三步之后的步骤的描绘)。
当此后操作分布式批处理应用330时,图18中示出的阶段中的共享模块322c(shared02.class)可被公用,而构成分布式批处理应用330的第一主模块331a(step21.class)、第二主模块322a(step22.class)、从模块322b(step22_slave.class)被存储在元数据共享单元315中。因为不必向其他节点进行关于模块的存在的查询,所以可高速进行这些动作。
如上所述,用该实施例,可以通过减少执行不同工作的多个分布式批处理应用之间的元数据复制来共享元数据。因此,可更有效地进行应用的部署和初始化。另外,变得不必向其他节点进行关于远数据的存在的查询,使得不必弄清哪个元数据处于哪个节点。因此,即使存在正产生故障的节点,在获取元数据时也不出现因为此节点造成的失效。
作为实施例的扩展形式,主节点和从节点都可被构造成将自身容器所读取的元数据注册到元数据共享单元115。例如,如果有数据不是被主节点读出而是被从节点读出,则对于其他分布式批处理应用,元数据有可能被主节点和其他从节点使用。
虽然以上参照附图中示出的特定实施例描述了本发明,但本发明不仅限于上述实施例。可采用任何其他已知结构,只要可用该结构实现本发明的效果即可。
上述实施例的新技术内容可被如下总结。虽然实施例的部分或整个部分可被如下总结为新技术,但本发明不一定只限于下文。
(补充注释1)
一种分布式处理系统,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:
所述计算机中的每个包括模块加载器、元数据管理单元、文件管理单元和执行容器,所述模块加载器通过加载构成所述分布式批处理应用的各模块来执行初始化处理,所述元数据管理单元从预先设置的存储模块或者从其他计算机获取包含各模块之间的初始化处理的命令的元数据,所述文件管理单元读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中,所述执行容器执行所述分布式批处理应用;以及
所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当不存在所述执行区域时,从其他计算机加载所述执行代码并且将它作为所述执行区域写入。
(补充注释2)
根据补充注释1中描绘的分布式处理系统,其中,
所述文件管理单元包括创建仅仅所述元数据的模块作为文件并且通过所述元数据管理单元与其他计算机共享所述模块的功能。
(补充注释3)
根据补充注释1中描绘的分布式处理系统,其中,
所述多个计算机中的一个是管理所述分布式批处理应用的分布式执行的主节点,并且除了所述主节点外的计算机是从节点;以及
所述主节点的所述文件管理单元包括创建仅仅所述元数据的模块作为文件并且将所述模块发送到所述从节点的功能。
(补充注释4)
根据补充注释1中描绘的分布式处理系统,所述分布式处理系统包括可被所述计算机中的每个公共参考的分布式共享存储器,其中,
所述元数据管理单元包括将被所述元数据参考的公共文件存储到所述分布式共享存储器的功能。
(补充注释5)
一种分布式处理设备,多个所述分布式处理设备相互连接以构成以协作分布式方式执行分布式批处理应用的分布式处理系统,并且所述分布式处理设备包括:
模块加载器,其通过加载构成所述分布式批处理应用的各模块来执行初始化处理;
元数据管理单元,其从预先设置的存储模块或者从其他计算机获取包含各模块之间的初始化处理的命令的元数据;
文件管理单元,其读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中;
执行容器,其执行所述分布式批处理应用;其中,
所述文件管理单元包括以下功能:在所述模块加载器用所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当不存在所述执行区域时,从其他计算机加载所述执行代码并且将它作为所述执行区域写入。
(补充注释6)
根据补充注释5中描绘的分布式处理系统,其中,
所述文件管理单元包括创建仅仅所述元数据的模块作为文件并且通过所述元数据管理单元与其他计算机共享所述模块的功能。
(补充注释7)
根据补充注释5中描绘的分布式处理系统,其中,
所述元数据管理单元包括将被所述元数据参考的公共文件存储到可被所述计算机中的每个公共参考的分布式共享存储器中的功能。
(补充注释8)
一种用于分布式处理系统的分布式处理方法,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:
元数据管理单元,其获取包含构成所述分布式批处理应用的各模块之间的初始化处理的命令的元数据;
模块加载器,其用所述元数据来执行初始化处理;
在所述初始化处理之后,文件管理单元检查在存储模块中是否存在包含所述模块的执行代码的执行区域;
当所述存储模块中不存在包含所述执行代码的所述执行区域时,所述文件管理单元从其他计算机加载所述执行代码并且将它作为所述执行区域写入;以及
执行容器,其执行包含所述执行代码的模块。
(补充注释9)
根据补充注释8中描绘的分布式处理方法,其中,
在所述初始化处理之后,所述文件管理单元创建仅仅所述元数据的模块作为文件,并且通过所述元数据管理单元与其他计算机共享所述模块。
(补充注释10)
根据补充注释9中描绘的分布式处理方法,其中:
所述多个计算机中的一个是管理所述分布式批处理应用的分布式执行的主节点,并且除了所述主节点外的计算机是从节点;以及
在所述初始化处理之后,所述主节点的所述文件管理单元创建仅仅所述元数据的模块作为文件并且将所述模块发送到所述从节点。
(补充注释11)
根据补充注释8中描绘的分布式处理方法,所述分布式处理方法包括可被所述计算机中的每个公共参考的分布式共享存储器,其中,
所述元数据管理单元将被所述元数据参考的公共文件存储到所述分布式共享存储器。
(补充注释12)
一种用于分布式处理系统的分布式处理程序,所述分布式处理系统包括以协作分布式方式执行分布式批处理应用的多个相互连接的计算机,所述程序致使所述计算机执行:
用于获取包含构成所述分布式批处理应用的各模块之间的初始化处理的命令的元数据的处理;
用于用所述元数据执行所述初始化处理的处理;
用于在所述初始化处理之后检查在存储模块中是否存在包含所述模块的执行代码的执行区域的处理;
用于当所述存储模块中不存在包含所述执行代码的所述执行区域时从其他计算机加载所述执行代码并且将它作为所述执行区域写入的处理;以及
用于执行包含所述执行代码的模块的处理。
(补充注释13)
根据补充注释12中描绘的分布式处理程序,所述分布式处理程序致使计算机进一步执行用于在所述初始化处理之后创建仅仅所述元数据的模块作为文件并且与其他计算机共享所述模块的处理。
工业可应用性
本申请要求基于2013年5月31日提交的日本专利申请No.2013-115527的优先权权利并且本申请的公开的全部内容特此以引用方式并入。
本发明被广泛应用于执行分布式处理的计算机网络。实际上,本发明可提供随着分布处理的规模变大而减小通信量并且加速处理的优异效果。
参考标号
1、100、200分布式处理系统
2、2a、2b计算机
3、112模块加载器
4、113元数据管理单元
5、114文件管理单元
6、111执行容器
10、210、210a、210b主节点
11、21处理器
12、22存储模块
13、23通信模块
20、20a、20b、220从节点
30网络
101OS
110、310分布式处理中间件
111、311执行容器
112、312模块加载器
113、313元数据管理单元
114、314文件管理单元
115、315元数据共享单元
116、316文件夹
120、320、330分布式批处理应用
120a配置文件
121、321第一步
121a、321a第一主模块
122、322第二步
122a、322a第二主模块
122b、322b从模块
122c、322c共享模块
123、323第三步
123a、323a第三主模块
230分布式共享存储器

Claims (10)

1.一种分布式处理系统,所述分布式处理系统包括以协作和分布式方式执行分布式批处理应用的多个相互连接的计算机,其中:
所述计算机中的每一个包括模块加载器、元数据管理单元、文件管理单元和执行容器,所述模块加载器通过加载构成所述分布式批处理应用的每个模块来执行初始化处理,所述元数据管理单元从预先设置的存储模块或者从其他计算机获取包含各个所述模块之间的所述初始化处理的命令的元数据,所述文件管理单元读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中,所述执行容器执行所述分布式批处理应用;以及
所述文件管理单元包括下述功能:该功能在所述模块加载器通过所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当所述执行区域不存在时,从其他计算机加载所述执行代码,并且写入其作为所述执行区域。
2.根据权利要求1所述的分布式处理系统,其中,
所述文件管理单元包括下述功能:该功能创建仅所述元数据的模块作为文件,并且通过所述元数据管理单元与其他计算机共享所述模块。
3.根据权利要求2所述的分布式处理系统,其中:
所述多个计算机中的一个是主节点,所述主节点管理所述分布式批处理应用的分布式执行,并且除了所述主节点外的计算机是从节点;并且
所述主节点的文件管理单元包括下述功能:该功能创建仅所述元数据的模块作为文件,并且将所述模块发送到所述从节点。
4.根据权利要求1所述的分布式处理系统,所述分布式处理系统包括能够从所述计算机中的每一个公共参考的分布式共享存储器,其中,
所述元数据管理单元包括下述功能:该功能将所述元数据所参考参考的公共文件存储到所述分布式共享存储器。
5.一种分布式处理设备,多个所述分布式处理设备相互连接以构成以协作和分布式方式执行分布式批处理应用的分布式处理系统,所述分布式处理设备包括:
模块加载器,所述模块加载器通过加载构成所述分布式批处理应用的每个模块来执行初始化处理;
元数据管理单元,所述元数据管理单元从预先设置的存储模块或者从其他计算机获取包含各个模块之间的所述初始化处理的命令的元数据;
文件管理单元,所述文件管理单元读取所述存储模块或其他计算机中的文件/将文件写入所述存储模块或其他计算机中;以及
执行容器,所述执行容器执行所述分布式批处理应用;其中,
所述文件管理单元包括下述功能:该功能在所述模块加载器通过所述元数据执行所述初始化处理之后,检查在所述存储模块中是否存在包含所述模块的执行代码的执行区域,并且当所述执行区域不存在时,从其他计算机加载所述执行代码,并且写入其作为所述执行区域。
6.根据权利要求5所述的分布式处理系统,其中,
所述文件管理单元包括下述功能:该功能创建仅所述元数据的模块作为文件,并且通过所述元数据管理单元与其他计算机共享所述模块。
7.一种在分布式处理系统中使用的分布式处理方法,所述分布式处理系统包括以协作分和布式方式执行分布式批处理应用的多个相互连接的计算机,其中:
元数据管理单元获取包含构成所述分布式批处理应用的各个模块之间的初始化处理的命令的元数据;
模块加载器通过所述元数据来执行初始化处理;
在所述初始化处理之后,文件管理单元检查在存储模块中是否存在包含所述模块的执行代码的执行区域;
当所述存储模块中不存在包含所述执行代码的所述执行区域时,所述文件管理单元从其他计算机加载所述执行代码,并且写入其作为所述执行区域;兵器
执行容器执行包含所述执行代码的模块。
8.根据权利要求7所述的分布式处理方法,其中,
在所述初始化处理之后,所述文件管理单元创建仅所述元数据的模块作为文件,并且通过所述元数据管理单元与其他计算机共享所述模块。
9.根据权利要求8所述的分布式处理方法,其中:
所述多个计算机中的一个是管理所述分布式批处理应用的分布式执行的主节点,并且除了所述主节点外的计算机是从节点;并且
在所述初始化处理之后,所述主节点的所述文件管理单元创建仅所述元数据的模块作为文件,并且将所述模块发送到所述从节点。
10.一种在分布式处理系统中使用的分布式处理程序,所述分布式处理系统包括以协作和分布式方式执行分布式批处理应用的多个相互连接的计算机,所述程序使得所述计算机执行:
用于获取包含构成所述分布式批处理应用的各模块之间的初始化处理的命令的元数据的过程;
用于用所述元数据执行所述初始化处理的过程;
用于在所述初始化处理之后检查在存储模块中是否存在包含所述模块的执行代码的执行区域的过程;
用于当所述存储模块中不存在包含所述执行代码的所述执行区域时从其他计算机加载所述执行代码并且将它作为所述执行区域写入的过程;以及
用于执行包含所述执行代码的模块的过程。
CN201480031306.1A 2013-05-31 2014-05-29 分布式处理系统、设备、方法和记录介质 Active CN105474177B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2013115527 2013-05-31
JP2013-115527 2013-05-31
PCT/JP2014/064257 WO2014192867A1 (ja) 2013-05-31 2014-05-29 分散処理システム、分散処理装置、分散処理方法および分散処理プログラム

Publications (2)

Publication Number Publication Date
CN105474177A true CN105474177A (zh) 2016-04-06
CN105474177B CN105474177B (zh) 2019-06-04

Family

ID=51988890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480031306.1A Active CN105474177B (zh) 2013-05-31 2014-05-29 分布式处理系统、设备、方法和记录介质

Country Status (4)

Country Link
US (1) US9733977B2 (zh)
JP (1) JP6052406B2 (zh)
CN (1) CN105474177B (zh)
WO (1) WO2014192867A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383846A (zh) * 2016-08-31 2017-02-08 天津南大通用数据技术股份有限公司 一种分布式数据库系统数据的加载方法及装置
CN108170820A (zh) * 2018-01-02 2018-06-15 联想(北京)有限公司 一种容器处理方法、控制服务器及分布式集群
CN108829624A (zh) * 2018-06-25 2018-11-16 首都师范大学 一种cps节点属性数据与功能方法代码的存储组织方法
CN108919756B (zh) * 2018-06-25 2020-07-28 首都师范大学 一种cps节点功能处理方法的加载与调用方法
CN113454594A (zh) * 2019-02-22 2021-09-28 国际商业机器公司 用于云服务的本机代码生成

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102090911B1 (ko) 2019-12-16 2020-03-19 주식회사 케이비시스 컨테이너 기반의 클라우드 서비스 제공 시스템
CN111625374B (zh) * 2020-05-15 2023-06-27 北京达佳互联信息技术有限公司 一种任务处理方法、终端和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1960287A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 用于在网络上调度作业的方法和设备
CN1989486A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象
US20070220212A1 (en) * 2006-03-16 2007-09-20 Johns Charles R Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing a store and reserve instruction
CN101206589A (zh) * 2006-12-19 2008-06-25 国际商业机器公司 用于执行库存扫描的方法与系统
WO2009005962A2 (en) * 2007-06-28 2009-01-08 Microsoft Corporation Secure software deployments

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3845497B2 (ja) * 1997-07-29 2006-11-15 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータ・システム
US6574635B2 (en) 1999-03-03 2003-06-03 Siebel Systems, Inc. Application instantiation based upon attributes and values stored in a meta data repository, including tiering of application layers objects and components
US20020178254A1 (en) 2001-05-23 2002-11-28 International Business Machines Corporation Dynamic deployment of services in a computing network
JP2004342042A (ja) 2003-05-19 2004-12-02 Will Being:Kk 分散環境における通信方法及び通信システム
JP2006155187A (ja) 2004-11-29 2006-06-15 Sony Corp 情報処理システム、情報処理装置および方法、記録媒体、並びにプログラム。
JP2008171277A (ja) 2007-01-12 2008-07-24 Canon Inc メタデータ配置装置及びその制御方法、コンピュータプログラム
US7503047B1 (en) * 2008-04-08 2009-03-10 International Business Machines Corporation System and method for enhancing the sharing of application libraries between different JVM's and systems with a dynamic relocation based on usage patterns
US8181178B2 (en) * 2008-08-14 2012-05-15 Yahoo! Inc. Online batch execution
JP2011034137A (ja) 2009-07-29 2011-02-17 Toshiba Corp 分散処理装置及び分散処理方法
JP2012063832A (ja) 2010-09-14 2012-03-29 Nec Corp 分散処理システム、分散処理方法、及びコンピュータプログラム
CN102567042B (zh) 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
JP6051733B2 (ja) * 2012-09-25 2016-12-27 日本電気株式会社 制御システム、制御方法、及び、制御プログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1989486A (zh) * 2004-05-20 2007-06-27 Sap股份公司 在运行时系统中共享对象
CN1960287A (zh) * 2005-11-03 2007-05-09 国际商业机器公司 用于在网络上调度作业的方法和设备
US20070220212A1 (en) * 2006-03-16 2007-09-20 Johns Charles R Method, system, apparatus, and article of manufacture for performing cacheline polling utilizing a store and reserve instruction
CN101206589A (zh) * 2006-12-19 2008-06-25 国际商业机器公司 用于执行库存扫描的方法与系统
WO2009005962A2 (en) * 2007-06-28 2009-01-08 Microsoft Corporation Secure software deployments

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106383846A (zh) * 2016-08-31 2017-02-08 天津南大通用数据技术股份有限公司 一种分布式数据库系统数据的加载方法及装置
CN108170820A (zh) * 2018-01-02 2018-06-15 联想(北京)有限公司 一种容器处理方法、控制服务器及分布式集群
CN108170820B (zh) * 2018-01-02 2022-04-22 联想(北京)有限公司 一种容器处理方法、控制服务器及分布式集群
CN108829624A (zh) * 2018-06-25 2018-11-16 首都师范大学 一种cps节点属性数据与功能方法代码的存储组织方法
CN108919756B (zh) * 2018-06-25 2020-07-28 首都师范大学 一种cps节点功能处理方法的加载与调用方法
CN108829624B (zh) * 2018-06-25 2021-04-06 首都师范大学 一种cps节点属性数据与功能方法代码的存储组织方法
CN113454594A (zh) * 2019-02-22 2021-09-28 国际商业机器公司 用于云服务的本机代码生成

Also Published As

Publication number Publication date
JP6052406B2 (ja) 2016-12-27
US20160070591A1 (en) 2016-03-10
CN105474177B (zh) 2019-06-04
JPWO2014192867A1 (ja) 2017-02-23
WO2014192867A1 (ja) 2014-12-04
US9733977B2 (en) 2017-08-15

Similar Documents

Publication Publication Date Title
CN105474177B (zh) 分布式处理系统、设备、方法和记录介质
JP6774499B2 (ja) オフラインでのハイブリッドアプリケーションへのアクセスの提供
US10411961B2 (en) Image management in cloud environments
US10169348B2 (en) Using a file path to determine file locality for applications
WO2015195418A1 (en) Software package management
US9940329B2 (en) System and method for providing a climate data persistence service
US11263297B2 (en) Dynamic insertion of variablized secrets in a pipeline integration system
US20190114084A1 (en) Computing system with processing and method of operation thereof
Choi et al. Improved performance optimization for massive small files in cloud computing environment
Cai et al. Deployment and verification of machine learning tool-chain based on kubernetes distributed clusters: This paper is submitted for possible publication in the special issue on high performance distributed computing
CN107463638A (zh) 离线虚拟机间文件共享方法和设备
EP4414836A1 (en) Container engine, container engine implementation methods, electronic device and storage medium
US20160335331A1 (en) System and method for providing climate data analytics as a service
US10884774B2 (en) Virtual node deployments of cluster-based applications modified to exchange reference to file systems
US20180341475A1 (en) Just In Time Deployment with Package Managers
US10146791B2 (en) Open file rebalance
CN115016862A (zh) 基于Kubernetes集群的软件启动方法、装置、服务器及存储介质
Jang et al. A Framework for Model-Sharing of Augmented Intelligence in Container-based Modular Robot Using Cloud System
CN111142972A (zh) 用于扩展应用程序的功能的方法、装置、系统及介质
CN110928641A (zh) 一种基于docker的集群环境下镜像分发方法、系统及设备
US20240054000A1 (en) Container scheduling and deployment method and apparatus, and domain controller system
US20230385075A1 (en) Networked Universal Code Package Provider
US20240201979A1 (en) Updating Running Containers without Rebuilding Container Images
US20240248761A1 (en) System and method for infrastructure management using self describing services
US20210096763A1 (en) Method, device, and computer program product for managing storage system

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant