并行处理系统的工作节点重建的制作方法

文档序号:15575367发布日期:2018-09-29 05:24阅读:199来源:国知局

本申请要求于2016年5月12日递交的发明名称为“并行处理系统的工作节点重建”的第15/152,796号美国申请案的在先申请优先权,该在先申请的内容以引入的方式并入本文。

本发明涉及并行处理系统,尤其涉及重建用于容错并行处理系统的工作节点。



背景技术:

在一些用于在一组连接的分布式服务器上利用并行分布式算法处理和生成大数据集的编程模型中,例如mapreduce,使用非工作保存检测/重启模型进行容错。主节点监测每个工作节点的状态。一旦检测到工作节点故障,主节点在其他工作节点上重新调度受影响的任务,以恢复丢失的中间数据。然后将故障的工作节点从组中移除。工作节点总数减一。在大规模系统中,减少工作节点数量可能会降低整个系统的吞吐量。



技术实现要素:

一种方法包括:在分布式处理集群的每个工作节点中创建通信代理;在分布式处理集群之外的节点中创建通信代理作为冗余节点,工作节点和冗余节点形成通信器组;使用通信代理对分布式处理集群中的每个工作节点进行编号和标识;使用分布式处理集群的节点间的通信代理检测分布式处理工作节点故障;使用通信代理从通信器组的其中一个冗余节点中生成新工作节点作为分布式处理集群中的新工作节点;使用通信代理重建新工作节点以用于分布式处理集群操作;使用通信代理启动新工作节点以加入分布式处理集群中与其他工作节点一起进行通信器组中工作节点间的通信。

一种计算机实现的分布式处理系统包括:多个分布式节点,所述分布式节点具有处理电路,其中每个节点具有耦合到处理电路的存储设备;代码,存储在每个节点的存储设备上,用于由处理电路执行以执行操作。所述操作包括:在分布式处理集群的每个工作节点中创建通信代理;在分布式处理集群之外的节点中创建通信代理作为冗余节点,工作节点和冗余节点形成通信器组;使用通信代理对分布式处理集群中的每个工作节点进行编号和标识;使用分布式处理集群的节点间的通信代理检测分布式处理工作节点故障;使用通信代理从通信器组的其中一个冗余节点中生成新工作节点作为分布式处理集群中的新工作节点;使用通信代理重建新工作节点以用于分布式处理集群操作;使用通信代理启动新工作节点以加入分布式处理集群中与其他工作节点一起进行通信器组中工作节点间的通信。

在一些实施例中,一种节点包括:处理电路;存储设备,所述存储设备耦合到处理电路;代码,存储在存储设备上,用于由处理电路执行以执行操作。所述代码包括:耦合到mpi通信器组的消息传递接口(messagepassinginterface,简称mpi)代理,其中mpi代理用于当节点变成工作节点的hadoop集群中的工作节点时对节点进行编号和标识。当hadoop工作节点检测为故障时,可通过通信代理从节点中将节点生成为新工作节点。mpi代理用于重建节点作为新工作节点以用于hadoop集群操作。节点还用于使用mpi代理启动为新工作节点以加入hadoop集群中与其他工作节点一起进行通信器组中工作节点间的通信。

附图说明

图1为示例实施例提供的采用消息传递接口(messagepassinginterface,简称mpi)代理和工作节点生成和替换的分布式处理系统的框图;

图2为示例实施例提供的包括具有五个节点和两个备用节点的集群的域的框图;

图3为示例实施例提供的mapreduce-mpi(消息传递接口)hadoop环境的框图;

图4为示例实施例提供的通信器组初始化流程的流程图;

图5为示例实施例提供的mpi错误处理程序的流程图;

图6为示例实施例提供的示出发生故障时的系统响应的分布式计算系统的框图;

图7为示例实施例提供的mpi超时阈值调整的时序图;

图8为示例实施例提供的一种通过mpi代理重建工作节点的方法的流程图;

图9为示例实施例提供的响应故障节点检测在系统中重配置hadoop节点的序列框图;

图10为示例实施例提供的响应hadoop系统中故障节点检测使用备用节点替换节点的框图;

图11为一种设置冗余节点以将冗余节点配置为新工作节点的方法的流程图;

图12为一种配置冗余节点成为新工作节点的方法;

图13为一种在hadoop集群中包含新工作节点并启动冗余节点作为工作节点的方法1300的流程图;

图14为示例实施例提供的用于节点实现算法和执行方法的计算机电路的框图。

具体实施方式

以下结合附图进行描述所述附图是描述的一部分并通过图解说明的方式示出可以实施本发明的具体实施例。这些实施例将充分详细描述使本领域技术人员能够实施本发明而且应该明白的是可以使用其它实施例并且在不脱离本发明的范围的情况下可以做出结构上、逻辑上、电学上的改变。因此以下示例实施例的描述并不当作限定,本发明的范围由所附权利要求书界定。

本文描述的功能或算法可以在一实施例中的软件中实施。该软件可包含计算机可执行指令,这些计算机可执行指令存储在计算机可读介质上或者计算机可读存储设备上,如一个或多个非瞬时性存储器或其它类型的本地或联网的硬件存储设备。此外,这些功能对应模块,这些模块可以是软件、硬件、固件或其任意组合。多个功能可根据需要在一个或多个模块中执行,所描述的实施例仅为示例。该软件可在数字信号处理器、asic、微处理器上执行或者在个人计算机、服务器、或其它计算机系统等其它类型的计算机系统上运行的处理器上执行,从而将这些计算机系统转换成一个专门编程的机器。

首先描述了一种用于具有多个工作节点和任务管理与通信机制的分布式并行处理系统的框架,然后描述了在系统中检测、重建并替换故障工作节点,从而避免故障节点降低系统性能。mapreduce(实施mapreduce时的hadoop)是如图1中框图形式100示出的一种开源软件框架,用于110、120、123和125处指示的节点上的大数据集的分布式存储和分布式处理。节点110为主节点,节点120、123和125代表多个工作节点。hadoop分布式文件系统(hadoopdistributedfilesystem,简称hdfs)是130和135处指示的一种与每个节点关联的分布式可扩展便携式文件系统。hdfs可使用java编写,用于hadoop框架100中。一个hadoop集群名义上具有115处指示的单个名称节点以及140和145处指示的多个数据节点。冗余选项可用于名称节点。每个数据节点140和145使用针对hdfs的块协议通过网络提供数据块。文件系统使用tcp/ip(传输控制协议/互联网协议)套接字150通过互联网等网络160进行通信。使用框架100的客户端可使用远程过程调用(remoteprocedurecall,简称rpc)进行相互间通信。

hdfs在多个机器上存储大文件(通常在千兆字节到兆兆字节的范围内)。hdfs通过在多个节点上复制数据来实现可靠性。

hadoop-0.23中的下一代mapreduce称为mapreduce2.0(mpv2)或者yarn。hadoopyarn具有全局资源管理器(resourcemanager,简称rm)和每个应用的应用管理器(applicationmaster,简称am)。170处示出的资源管理器也是调度器,是在系统中的所有应用之间仲裁资源的最终主体。180和185处示出的节点管理器是每个机器的框架代理,负责监测容器的资源使用(cpu、存储器、磁盘、网络)并报告给资源管理器/调度器170。

每个应用的应用管理器187和188实际上是一个框架专用库,用于从资源管理器170协商资源,以及与节点管理器180和185合作以执行并监测任务。资源管理器170有两个主要组成部分:调度器和应用管理器。调度器负责为各种运行中的应用分配资源,这些应用受制于容量、队列等熟悉约束条件。调度器是一个单纯的调度器,不用于监测或跟踪应用状态。调度器也不保证重启应用故障或硬件故障导致的故障任务。调度器根据应用的资源需求执行调度功能,根据资源容器的抽象概念实现该功能,资源容器包括存储器、cpu、磁盘、网络等元件。

mapreduce是一种编程模型,是在一组连接的分布式服务器,也称为节点、工作节点或数据节点,上利用并行分布式算法处理和生成大数据集的相关实现。196处示出的每个节点中的消息传递接口(messagepassinginterface,简称mpi)代理执行减少和分散操作,以分配在节点上执行的任务部分。mpi是没有数据局部性的消息传递接口。可以在并行处理节点组的节点间发送数据以执行任务。

框架100示出的与hadoop分布式文件系统一起使用的mapreduce-mpi复制数据,使得节点可以使用本地存储,从而使数据从磁盘等本地存储流出并直接提供给节点中的处理器。mapreduce利用本地存储,以避免处理大量数据时的网络瓶颈。

mapreduce程序可以由map()流程(方法)和reduce()方法组成。map()流程(方法)执行过滤和排序(例如,按照名字将一群人排成队列,一队一个名字),reduce()方法执行总结操作(例如,计算每队中的人数,生成名字频率)。“mapreduce系统”(也称为“基础设施”或“框架”)通过编排分布式节点,并行运行各种任务,管理系统各部分间的所有通信和数据传递,以及提供冗余和容错来协调处理。

框架100继承了hadoop的特征,能够支持复杂迭代mpi应用并提高其计算效率。mpi有助于监测和管理hadoop集群资源。hadoop兼容运行时间库并行执行计算和管理。mpi任务作为正常任务启动,以最大化计算效率。具有mpi的迭代mapreduce框架100具有广泛的潜在用途,例如,可以被包含一个或多个mapreduce迭代的任何应用使用,可以在hadoop的map阶段或reduce阶段调用串行或并行(mpi)计算。

mpi管理的mapreduce形式设计用于促进异步分布式mapreduce处理。mp-mpi等库根据该方法设计。它允许mpi在集群中的每个节点上运行,推进mpi映射和归约操作以调用用户自定义的map()和reduce()函数。mpi在mapreduce操作期间对工作节点中每个处理器分配的数据的内存和格式进行精确控制。mp-mpi库发出调用以执行映射、归约或数据转移操作,这需要所有处理器参与并完成操作。库中的mpi维持其传统的mpi_send和mpi_recv模式在使用大量聚合消息的处理器对之间调用,以提高带宽性能和降低时延成本。

在mapreduce中,非工作保存检测/重启模型用于容错。主节点,例如主节点110,监测每个工作节点的状态。一旦检测到工作节点故障,主节点在其他工作节点上重新调度受影响的任务,以恢复丢失的中间数据。然后将故障的工作节点从组中移除。工作节点总数减一。在大规模系统中,减少工作节点数量可能会降低整个系统的吞吐量。本发明实施例中,从一组预留节点中生成新节点并替换故障节点,从而维持系统吞吐量。

图2为包括具有处理元件(pe0-4)的五个节点(n0-4)的mapreduce-mpihadoop集群210的域200的框图。另外,215处示出了两个预留资源,即具有pe5-6的节点n5-6。集群210中的节点和预留资源215是通信器组220的一部分。通信器组中的每个节点,包括冗余节点,具有在其中创建的一个mpi代理。使用mpi代理对集群210中的每个节点进行编号和标识。域200还可以包括不在通信器组220中的其他节点n7-10。集群中的节点通过ip网络完全连接。网络提供tcp连接一次可以持续几个小时到几天。这种连接提供一个优秀的虚拟并行平台用于运行hadoop集群。心跳可用于检查此类虚拟集群中的网络连接:连接的各端周期性向其对端发送小数据包(一次“心跳”);如果对端在特定时间段内未收到心跳,则认为连接中断。问题在于,tcp本身不提供心跳,并且不通知tcp端点连接断开,从而阻止较高tcp层做出正确反应,导致tcp端点一直不会退出,并一直尝试与不可达的对端通信。应用可被更高级应用重新初始化,例如mpi_init。对某些类型的计算应用,尤其是有高可用性需求的计算应用,缺失故障通知是一个关键问题。

图1中的mapreduce-mpi管理器190将使用c个节点(hadoop集群)执行hadoop应用。如果发生故障,多个冗余节点r可用于备份任何工作节点。如图2中的简化实例所示,c=5,r=2。

主节点110使用mpi,用mpi_comm_world初始化通信器组220。一个通信器代表由mpi初始化的一组有序节点中的一个节点。主节点110依次从分布式系统的所有通信器中收集信息。

mpi代理196是预先安装在集群中的每个节点中的软件代理。图3为多级mpi代理的组件和功能的图表。级别310中,mpi代理安装在主节点、从节点和冗余节点中。级别320中,每个节点都支持hadoop应用。级别330中,在主节点110中,hadoop资源管理器170监听mpi故障报告并决定是否以及何时重建新工作节点。330中,在工作节点中,hadoop节点管理器180和185监听报告并向hadoop主节点110发送错误消息。330中,预先安装冗余节点作为工作节点。级别340中,监测节点故障的所有mpi从节点向hadoop应用报告故障。冗余节点中,预先安装了mpi代理。级别350中,mpi主节点110和从节点都被初始化为mpi通信器。预先安装有mpi代理的冗余节点处于活跃状态并通过tcp/ip网络160连接,但不初始化为mpi通信器。底层360是分布式操作环境和tcp/ip网络,可以为无线网络。

图4为通信器组初始化流程400的流程图。410中,从主节点110接收的通信器总数=c。420中,通过mpi_init和mpi_comm_world使用n=c+r个通信器初始化通信器组。r为冗余通信器数量。在430中收集来自所有通信器的信息。收集到所有信息后,在440中更新建立的状态。在450中,进入正常操作模式,允许每个节点通过mpi进行通信。

mapreduce的实施确保输入数据在多个节点中是冗余的。如果节点发生故障,基于输入数据的任务可以在承载该数据副本的另一节点上重启。

mpi使用检查点备份容错任务状态,这需要周期性系统快照和在永久存储单元中存储应用状态信息。如果发生故障,可以检索最近的状态信息并从检查点恢复系统。检查点保存在不受单个计算元件故障影响的永久存储单元中。

在mapreduce-mpi框架100中,mpi检查点机制在主节点110上形成检查点,主节点110写入重启应用所需的数据。以下为传统的mpi检查点方法:首先,用户负责确保保存了所有数据。检查点在程序中的特定点上获得。重新创建mpi和hadoop集群后,从之前的检查点等存储机制恢复备份数据的过程通常可以使用现有方法进行。

mpi有高度准确且完整的故障检测器。当应用尝试通过函数返回码和相关通信器上设置的错误处理程序与故障过程直接或间接通信时,会收到过程故障通知。设计的mpi机制实现了一种恢复和继续的方案,如果在原始处理器或节点中保持活动过程时发生错误,则只重新生成故障过程。

为了最小化故障恢复过程对系统的影响,在一实施例中,mpi错误处理程序等组件周期性检查mpi通信器的状态。如果检测到通信器故障,mpi将尝试重新连接。图5为mpi错误处理程序mpi_init过程500的流程图。510中,mpi_init与每个机器ping并建立连接,建立包括所有通信器的通信组,并确保所有通信器已启动且可用。520中,过程500发送大小为n的节点号码、节点名称、mpi过程将在上面运行的文件夹路径以及具有应用指令的文件名称。530中,使用远程过程调用(remoteprocedurecall,简称rpc)来初始化独立的长期tcp连接。

540中,节点并行执行任务。每个节点可以部署多个线程。如果状态为关闭,则假定节点故障。如果发生通信故障,例如过程中止或网络链路故障,mpi实施返回错误码。550中,mpi_comm_spawn用于创建通信器。对于并行工作节点,这是形成通信器组的一种更简单的方式。当一个工作节点死亡时,mpi_comm_spawn替换该节点并以不少于之前数量的工作节点继续进行处理。

560中,并行工作节点的过程可以使用普通通信器进行互相通信。这种情况下的容错存在于整个主/从结构中。570中,mpi过程500发送大小为n的节点号码、节点名称、mpi过程将在上面运行的文件夹路径以及具有应用指令的文件名称。rpc重新初始化独立的长期tcp连接。580中,mpi从存储加载检查点。590中,hadoop节点独立于mpi应用进行并行执行。在mapreduce-mpi框架的应用层,hadoop通过将变量与可配置阈值进行比较来推断故障。

图6为示出发生故障时hadoop和mpi如何响应的分布式计算系统600的框图。示出系统600具备主节点610和从节点615和616。如图1所示,主节点610包括mpi代理620和hadoop资源管理器625。从节点包括节点管理器630和数据节点640。

hadoop在任务执行过程中不断更新变量。hadoop不在不同任务间共享故障信息,因为hdfs的设计考虑了可扩展性。为了避免给名称节点645造成过大负担,大多数功能,包括故障检测和恢复,都属于数据节点640。hadoop没有有效的方法来区分通信网络中的拥塞和过载,通常都视其为故障。

hadoop通信基于长期tcp连接。如650处所示,hadoop可以长时间(默认为10分钟)等待无响应节点。工作节点每3s向主节点发送心跳,反过来,主节点每200s检查是否有工作节点600s没有发送心跳,以检测工作节点故障。如650处所示,如果一个工作节点被宣布死亡,故障发生时运行于其上的任务在其他节点上重启。如果任务仍在进行中且包含归约函数,在该死亡节点上完成的映射任务也进行重启。

如660处所示,hadoop使用连接错误和超时来防止数据节点故障。如果超时或者现有连接断开但hdfs操作继续,从名称节点获取一组新的源节点或目的节点。初始任务和se任务都可以遭遇超时,读取超时和连接超时以60s为基准,写入超时以480s为基准。绝对超时值存在5s到15s的差异,这取决于hdfs写入管道中数据节点的位置。650处,mpi响应检测到的故障,丢弃故障节点并生成新节点。

图7为mpi超时阈值调整的时序图700。不同超时变量使用推测执行算法检测影响hadoop数据节点和任务跟踪器的连接故障。谨慎选择这种情况下的超时,以适应数据中心常见的暂时拥塞事件。mpi比hadoop对连接故障更敏感。即使超时没有产生mpi_error,如果程序正在使用mpi_send和mpi_recv等mpi通信块,指示为hadoop超时阈值710的hadoop冗长等待设置将默认阻断mpi程序10分钟。

为了避免在非时间关键型应用的hadoop超时阈值内发送mpi_error消息,可以调整mpi运行时间以容忍hadoop等待时间。此时,程序应使用以下非阻断点对点通信原语:mpi_isend、mpi_irecv和mpi_iprobe。如图,然后可以实现mpi超时阈值715。如果可以取消待处理通信,可以使用mpi_cancel来有效释放用户资源,例如发送或接收缓存。

图8为一种通过mapreducempi框架中的mpi代理重建工作节点的方法800的流程图。810中,mpi初始化通信器组。820中,使用rpc收集节点信息,以建立tcp通信组。830中,通过tcp连接进行分布式处理。840中,检测到节点发生故障。850中,用新节点替换故障节点。850中,mpi也初始化包括新节点的新通信器组。860中,将通信器组信息提供给rpc。870中,从前一个检查点恢复数据。在一实施例中,可以从云存储恢复数据。880中,根据850中形成的新组,或者如果840中没有数据节点发生故障,则根据820中建立的先前tcp通信组进行当前tcp连接的分布式处理。在执行处理时840中的故障节点检测可以继续进行,以允许实时节点故障检测和替换,并响应故障和替换,初始化新通信器组。

图9为响应系统910的第二表示中的故障节点检测,在系统900中重配置hadoop节点的序列框图。在系统920中生成新节点以替换故障节点,在系统930中使用重配置的节点进行重配置和并行执行。在一实施例中,系统900包括四个节点,其中三个节点在hadoop集群935中运行,一个节点为预留节点。在另一实施例中,系统可包括更多节点,例如几百个或几千个节点或者更多。每个节点包括待执行的应用、运行时间码以及tcp和mpi通信层。

mpi_init用于与每个机器/节点ping和建立连接,建立包括所有通信器的通信组,并确保所有通信器已启动且可用。mpi过程发送大小为n的节点号码、节点名称、mpi过程将在上面运行的文件夹路径以及具有应用指令的文件名称。rpc初始化独立的长期tcp连接。

系统900并行进行执行,每个节点可以部署多个线程。如果状态为关闭,则假定节点故障。如果发生通信故障,例如过程中止或网络链路故障,mpi实施用于返回错误码。

主过程使用mpi_comm_spawn创建互联通信器。对于并行工作节点,这是形成通信器组的一种更简单的方式。如系统910中所示,当一个工作节点死亡时,mpi_comm_spawn替换该节点并以不少于之前数量的工作节点继续进行处理。如920和940处所示,节点2发生故障并被节点3替换。

并行工作节点的过程可以使用普通互联通信器进行互相通信。这种情况下的容错存在于整个主/从结构中。920处,mpi过程发送大小为n的节点号码、节点名称、mpi过程将在上面运行的文件夹路径以及具有应用指令的文件名称。930处,rpc重新初始化独立的长期tcp连接。mpi从存储加载检查点。所有hadoop节点独立于mpi应用进行并行执行。

图10为响应hadoop系统1000中故障节点检测使用备用节点替换节点的框图。客户端1010启动资源管理器接收到的作业,资源管理器作为作业跟踪器1015运行在名称节点或主节点上,将任务映射到多个数据节点1020和1025上。通过未能接收到状态更新,检测到对应于节点1020的节点故障。如1040处所示,备用节点1030经过mpi信道加载节点1020先前执行的任务的数据从而替换节点1020,并更新通信器组。备用节点1030还和原始节点1025一起发送状态更新用于故障节点检测。

图11为一种设置冗余节点以将冗余节点配置为新工作节点的方法1100的流程图。1110中,预先安装冗余节点并为其预配置和工作节点相同的hadoop/yarn环境。使得集群中所有工作节点和冗余节点的环境一致。1120中,在冗余节点中安装mpi代理以配置新节点。

图12为一种配置冗余节点成为新工作节点的方法1200的流程图。当冗余节点生成为通信器组中潜在的新工作节点后,执行该方法。hadoop的java配置由两种重要的配置文件驱动:只读默认配置-core-default.xml、hdfs-default.xml、yarn-default.xml和mapred-default.xml以及站点特定配置-etc/hadoop/core-site.xml、etc/hadoop/hdfs-site.xml、etc/hadoop/yarn-site.xml和etc/hadoop/mapred-site.xml。通过etc/hadoop/hadoop-env.sh和etc/hadoop/yarn-env.sh文件设置站点特定值,从而控制分布bin/目录的hadoop脚本建立。为了配置hadoop集群,配置hadoop守护进程执行环境并获取hadoop守护进程配置参数。

hdfs守护进程是名称节点、次名称节点和数据节点。yarn守护进程是资源管理器、节点管理器和web应用代理。如果要使用mapreduce,将运行mapreduce作业历史服务器。对于大型安装,通常运行在不同主机上。

1210中,mpi代理使用hadoop集群主机名/ip、hdfs名称节点、mapreduce作业跟踪器或资源管理器的信息更新新节点。配置现有hdfs名称节点和mr作业跟踪器(yarn中的资源管理器)的主机名/ip。

1220中,mpi代理将其他数据节点或名称节点的设置复制到新节点,例如,从core-site.xml、hdfs-site.xml、mapred-site.xml、主节点或从文件复制设置。在hadoop-env.sh中导出java主页。1230中,mpi代理将配置目录从其他工作节点复制到新节点。

图13为一种在hadoop集群中包含新工作节点并启动冗余节点作为工作节点的方法1300的流程图。

1310中,例如,mpi代理发出命令$hadoop_home/bin/start-dfs.sh使得新数据节点准备好存储数据,从而启动新节点。

1320中,例如,mpi代理使用$hadoop_home/bin/hadoop-daemon.sh启动作业跟踪器过程,使得新节点参与mapreduce作业。

1330中,新节点进行工作时mpi代理监测并报告状态。

1340中,mpi代理重新平衡hdfs,例如发出命令以重新平衡集群$hadoop_home/bin/start-balancer.sh。

图14为示例实施例提供的用于分布式处理系统中的节点实现算法和执行方法的电路的框图。不需要在各实施例中使用所有组件。例如,客户端、服务器和网络资源可以分别使用不同组的组件,或者例如在服务器的情况下,使用更大的存储设备。

一种示例计算设备计算机1400可包括处理单元1402、存储器1403、可移动存储器1410和不可移动存储器1412。虽然该示例计算设备图示描述为计算机1400,但在不同实施例中计算设备可以是不同形式。例如,计算设备还可以为分布式处理系统中的节点、智能手机、平板电脑、智能手表或包括图14所图示描述的相同或类似元件的其他计算设备。智能手机、平板电脑、智能手表等设备通常统称为移动设备或用户设备。进一步的,虽然各种数据存储元件图示为计算机1400的一部分,可选的,存储器还可包括通过网络可访问的云存储器,例如互联网存储器或服务器存储器。

存储器1403可包括易失性存储器1414和非易失性存储器1408。计算机1400可包括或访问计算环境。该计算环境包括各种计算机可读介质,如易失性存储器1414和非易失性存储器1408、可移动存储器1410和不可移动存储器1412。计算机存储器包括随机存取存储器(randomaccessmemory,简称ram)、只读存储器(read-onlymemory,简称rom)、可擦除可编程只读存储器(erasableprogrammableread-onlymemory,简称eprom)和电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom)、闪存或其它存储器技术、只读光盘(compactdiscread-onlymemory,简称cdrom)、数字多功能光盘(digitalversatiledisc,简称dvd)或其它光盘存储器、盒式磁带、磁带、磁盘存储器或其它磁存储设备,或者任何其它能够存储计算机可读指令的介质。

计算机1400可包括或访问计算环境。该计算环境包括输入设备1406、输出设备1404和通信连接1416。输出设备1404可包括显示设备,例如触摸屏,触摸屏也可作为输入设备。输入设备1406可包括触摸屏、触摸板、鼠标、键盘、相机、一个或多个设备专用按钮、集成在或通过有线或无线数据连接耦合到计算机1400中的一个或多个传感器、以及其他输入设备中的一种或多种。计算机可使用通信连接在联网环境中操作,以连接到数据库服务器等一个或多个远程计算机。远程计算机可包括个人计算机(personalcomputer,简称pc)、服务器、路由器、网络pc、对端设备或其他公共网络节点等。通信连接可包括局域网(localareanetwork,简称lan)、广域网(wideareanetwork,简称wan)、蜂窝、wifi、蓝牙或其他网络。

存储在计算机可读介质上的计算机可读指令可由计算机1300的处理单元1302执行。硬盘驱动器、cd-rom和ram是产品的一些示例,所述产品包括存储设备等非瞬时性计算机可读介质。术语计算机可读介质和存储设备不包括过于短暂的载波。例如,计算机程序1418可包含在cd-rom中,并从cd-rom加载到硬盘驱动器,所述计算机程序1418能够提供通用技术来对数据访问进行访问控制检查和/或对基于组件对象模型(componentobjectmodel,简称com)的系统中的服务器之一执行的操作进行访问控制检查。计算机可读指令允许计算机1300在具有多个用户和服务器的基于com的计算机网络系统中提供通用访问控制。存储器也可包括联网存储器,例如1420处示出的存储区域网络(storageareanetwork,简称san)。例如:

1.例1中的一种方法包括:在分布式处理集群的每个工作节点中创建通信代理;在分布式处理集群之外的节点中创建通信代理作为冗余节点,工作节点和冗余节点形成通信器组;使用通信代理对分布式处理集群中的每个工作节点进行编号和标识;使用分布式处理集群的节点间的通信代理检测分布式处理工作节点故障;使用通信代理从通信器组的其中一个冗余节点中生成新工作节点作为分布式处理集群中的新工作节点;使用通信代理重建新工作节点以用于分布式处理集群操作;使用通信代理启动新工作节点以加入分布式处理集群中与其他工作节点一起进行通信器组中工作节点间的通信。

2.根据例1所述的方法,分布式处理集群包括hadoop集群。

3.根据例2所述的方法,通信代理包括消息传递接口(messagepassinginterface,简称mpi)代理,通信器组包括mpi通信器组。

4.根据例3所述的方法,还包括:使用mpi在新节点中创建应用管理器,分配应用给通信器组中的工作节点执行。

5.根据例3至例4中任一项所述的方法,消息传递接口使用mpi函数复制、修改和编辑新生成的工作节点中的文件。

6.根据例1至例5中任一项所述的方法,所述生成新工作节点还包括:确定要生成的工作节点的类型。

7.根据例1至例6中任一项所述的方法,还包括:接收事务;生成执行事务的任务;将要执行的任务分配给通信器组中的工作节点和新工作节点。

8.根据例1至例7中任一项所述的方法,还包括:使用每个节点中的消息传递接口(messagepassinginterface,简称mpi)执行以下操作:使用命令或脚本启动作为服务的节点管理器;编辑节点管理器环境变量;修改节点管理器属性。

9.例9中的一种计算机实现的分布式处理系统包括:多个分布式节点,所述分布式节点具有处理电路,其中每个节点具有耦合到处理电路的存储设备;代码,存储在每个节点的存储设备上,用于由处理电路执行以执行操作。所述操作包括:在分布式处理集群的每个工作节点中创建通信代理;在分布式处理集群之外的节点中创建通信代理作为冗余节点,工作节点和冗余节点形成通信器组;使用通信代理对分布式处理集群中的每个工作节点进行编号和标识;使用分布式处理集群的节点间的通信代理检测分布式处理工作节点故障;使用通信代理从通信器组的其中一个冗余节点中生成新工作节点作为分布式处理集群中的新工作节点;使用通信代理重建新工作节点以用于分布式处理集群操作;使用通信代理启动新工作节点以加入分布式处理集群中与其他工作节点一起进行通信器组中工作节点间的通信。

10.根据例9所述的分布式处理系统,分布式处理集群包括hadoop集群。

11.根据例10所述的分布式处理系统,新节点为预先安装有与工作节点一致的hadoop软件的多个冗余节点中的一个。

12.根据例11所述的分布式处理系统,通信器组中的工作节点和冗余节点中的每个节点包括到网络的tcp/ip连接,通信代理使用消息传递接口通过网络向分布式计算系统管理器传递消息。

13.根据例10至例12任一项所述的方法,通信代理包括消息传递接口(messagepassinginterface,简称mpi)代理,通信器组包括mpi通信器组。

14.根据例13所述的分布式处理系统,消息传递接口使用mpi_comm_spawn函数生成新工作节点,所述生成新工作节点还包括:确定要生成的工作节点的类型。

15.根据例9至例14中任一项所述的分布式处理系统,操作还包括:接收事务;生成执行事务的任务;将要执行的任务分配给通信器组中的工作节点和新工作节点。

16.一种节点包括:处理电路;存储设备,所述存储设备耦合到处理电路;代码,存储在存储设备上,用于由处理电路执行以执行操作。所述代码包括:耦合到mpi通信器组的消息传递接口(messagepassinginterface,简称mpi)代理,其中mpi代理用于当节点变成工作节点的hadoop集群中的工作节点时对节点进行编号和标识;当hadoop工作节点检测为故障时,可通过通信代理从节点中将节点生成为新工作节点;mpi代理用于重建节点作为新工作节点以用于hadoop集群操作;节点用于使用mpi代理启动为新工作节点以加入hadoop集群中与其他工作节点一起进行通信器组中工作节点间的通信。

17.根据例16所述的节点,mpi代理使用mpi_comm_spawn函数生成新工作节点,所述生成新工作节点还包括:确定要生成的工作节点的类型。

18.根据例16至例17任一项所述的节点,mpi代理为新节点配置现有hadoop分布式文件系统(hadoopdistributedfilesystem,简称hdfs)名称节点和映射归约(mapreduce,简称mp)作业跟踪器或资源管理器的主机名/ip。

19.根据例16至例18任一项所述的节点,代码还包括应用管理器,用于管理节点变成工作节点时节点上执行的任务。

20.根据例16至例19任一项所述的节点,电路上执行的代码还执行以下操作:从作业跟踪器或在hadoop集群的主节点上运行的资源管理器接收任务并执行。

虽然上文详细描述了几个实施例但是可能进行其它修改。例如为了获得期望的结果附图中描绘的逻辑流不需要按照所示的特定顺序或者先后顺序。可以提供其它步骤或者从所描述的流程中去除步骤,所描述的系统中可以添加或移除其它组件。其它实施例可以在所附权利要求书的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1