CN107092531A - 计算框架、电子设备及信息处理方法 - Google Patents

计算框架、电子设备及信息处理方法 Download PDF

Info

Publication number
CN107092531A
CN107092531A CN201710140806.4A CN201710140806A CN107092531A CN 107092531 A CN107092531 A CN 107092531A CN 201710140806 A CN201710140806 A CN 201710140806A CN 107092531 A CN107092531 A CN 107092531A
Authority
CN
China
Prior art keywords
driver
memory
actuator
implementing result
agent components
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
CN201710140806.4A
Other languages
English (en)
Other versions
CN107092531B (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.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
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 Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN201710140806.4A priority Critical patent/CN107092531B/zh
Publication of CN107092531A publication Critical patent/CN107092531A/zh
Priority to US15/918,116 priority patent/US10877804B2/en
Application granted granted Critical
Publication of CN107092531B publication Critical patent/CN107092531B/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • 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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明实施例公开了一种计算框架、电子设备及信息处理方法,所述计算框架包括:执行器,用于根据驱动指令执行计算操作,生成执行结果;驱动器,用于生成所述驱动指令;代理组件,分别与所述执行器及所述驱动器连接,用于将所述驱动指令发送给对应的所述执行器,并将所述执行结果发送给对应的所述驱动器。

Description

计算框架、电子设备及信息处理方法
技术领域
本发明涉及电子技术领域,尤其涉及一种计算框架、电子设备及信息处理方法。
背景技术
Spark计算框架是一种基于内存的计算框架。在Spark计算框架中包括执行器以及与执行器直接相连的驱动器。所述驱动器是驱动器工作的。驱动器,主要负责计算任务的解析、将计算任务拆分成各个计算阶段,将各个阶段的计算任务分配给执行器进行执行。
在计算过程中驱动器需要消耗内存资源,在现有技术中,通常会静态为各个驱动器分配内存资源,若一旦出现当前所需内存资源数超过驱动器所分配的内存资源数,则该驱动器将出现异常。
与此同时,为了减少驱动器的异常状况,通常还会限制执行器一次性上传的计算结果的数据量,以避免一次性上传的计算结果的数据量所需的内存资源数量过大导致驱动器所分配的内存资源数量,从而导致驱动器的异常。
但是在实际使用过程中,还是发现驱动器异常还是时有发生。
发明内容
有鉴于此,本发明实施例期望提供一种计算框架、电子设备及信息处理方法,至少部分解决上述问题。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例第一方面提供一种计算框架,包括:
执行器,用于根据驱动指令执行计算操作,生成执行结果;
驱动器,用于生成所述驱动指令;
代理组件,分别与所述执行器及所述驱动器连接,用于将所述驱动指令发送给对应的所述执行器,并将所述执行结果发送给对应的所述驱动器。
基于上述方案,所述计算框架还包括:
存储器,与所述驱动器连接;
所述驱动器包括第一驱动器和第二驱动器;
所述第一驱动器,用于确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器的当前可用内存资源的数量;
所述存储器,用于当所述第一数量大于所述第二数量时存储所述第一驱动器提供的预定信息;
所述第二驱动器所分配的内存资源的第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量;所述第二驱动器,用于在与所述代理组件建立连接之后,基于所述预定信息及所述执行结果驱动所述执行器。
基于上述方案,所述第一驱动器为第m次启动的驱动器;
所述第二驱动器为第m+1次启动的驱动器;其中,所述m为正整数。
基于上述方案,所述第三数量为N倍为第四数量;所述N为不小于2的整数,所述第四数量是所述第一驱动器分配的内存资源的总数量。
本发明实施例第二方面提供一种电子设备,包括如上任意项所述的计算框架。
本发明实施例第三方面提供一种信息处理方法,包括:
驱动器生成驱动指令并将所述驱动指令发送给代理组件;
代理组件将所述驱动指令发送给对应的执行器;
所述执行器响应所述驱动指令,执行计算操作并生成执行结果;
所述执行器将所述执行结果发送给所述代理组件;
所述代理组件将所述执行结果发送给所述驱动器。
基于上述方案,所述方法还包括:
第一驱动器确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器的当前可用内存资源的数量;
当所述第一数量大于所述第二数量时,将预定信息存储到存储器;
启动第二驱动器;
为所述第二驱动器分配第三数量的内存资源;其中,所述第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量;
当第二驱动器与代理组件建立连接之后,由所述第二驱动器基于所述预定信息及所述执行结果驱动所述执行器。
基于上述方案,所述方法还包括:
所述第二驱动器从所述存储器读取所述预定信息;
基于所述预定信息,所述第二驱动器进行配置。
基于上述方案,所述第一驱动器为第m次启动的驱动器;
所述第二驱动器为第m+1次启动的驱动器;其中,所述m为正整数。
基于上述方案,所述为所述第二驱动器分配第三数量的内存资源,包括:
为所述第二驱动器分配N倍第四数量的内存资源;其中,所述N为不小于2的整数;所述第四数量是所述第一驱动器分配的内存资源的总数量。
本发明实施例提供的计算框架、电子设备及信息处理方法,在驱动器和执行器之间引入了代理组件,就避免了驱动器和执行器之间的直连,若驱动器出现异常时,可以重新启动一个新的驱动器与代理组件建立连接,而不用直接断开执行器与驱动器之间的连接,导致驱动过程中所有数据丢失,导致的新启动的驱动器无法替代异常的驱动器正常工作的现象。故本发明实施例提供的技术方案,可以减少驱动异常现象,提升任务的执行成功率。
附图说明
图1为本发明实施例提供的第一种计算框架的结构示意图;
图2为本发明实施例提供的第二种计算框架的结构示意图;
图3为本发明实施例提供的第一种信息处理方法的流程示意图;
图4为本发明实施例提供的第二种信息处理方法的流程示意图;
图5为本发明实施例提供的第三种信息处理方法的流程示意图;。
具体实施方式
以下结合说明书附图及具体实施例对本发明的技术方案做进一步的详细阐述。
如图1所示,本实施例提供一种计算框架,包括:
执行器110,用于根据驱动指令执行计算操作,生成执行结果;
驱动器120,用于生成所述驱动指令;
代理组件130,分别与所述执行器及所述驱动器连接,用于将所述驱动指令发送给对应的所述执行器110,并将所述执行结果发送给对应的所述驱动器120。
在一些场景中,本实施例所述计算框架可为应用于单个设备的计算框架,例如,应用于单台服务器中的计算框架。该服务器中的部分计算资源可用于形成一个或多个执行器110,还有一些计算资源可用于形成一个或多个驱动器120;另外还有些计算资源可用于形成一个或多个代理组件130。
在另一些场景中,所述计算框架可为应用于包括多个设备连接的集群中。例如,包括多台服务器的服务器集群。这些集群中的某些服务器充当所述执行器110,其中的一台或多台服务器可用于提供所述驱动器120,集群还有些设备充当所述代理组件130。多台服务器通过本地网络或远程网络建立连接。
在本实施例中所述执行器110和所述驱动器120之间,不再是直接建立连接。在本实施例中在所述执行器110和所述驱动器120之间引入了代理组件130所述代理组件一端与所述执行器110连接,另一端与所述驱动器120连接。在本实施例中一个所述代理组件130可以与1个或1个以上的执行器连接。另一端同样可以与1个或多个所述驱动器120。
所述驱动器120可用于对任务进行解析,并对调度所述执行器110对任务进行执行。驱动器120在调度执行器执行任务时,一般会产生驱动指令,将驱动指令发送给对应的执行器110,对应的执行器110在接收到驱动指令之后,会执行驱动指令指示的子任务或操作,从而是实现上述任务的执行。
执行器110在响应所述驱动指令在执行一些操作时,会将执行结果返回给驱动器120,驱动器120接收到所述执行结果后存储所述执行结果,然后继续对一个任务后续调度。若驱动器120的当前可用内存不够时,就没有办法完整的存储执行器110返回的执行结果,这样的话,就可能导致驱动器120的驱动异常。若驱动器120直接与执行器110连接的话,若其中一个驱动器120异常或关闭之后,就会导致执行器110没有与驱动器120建立有效的连接,会导致任务执行的无法继续。
在本实施例中引入了代理组件130,若驱动器120出现异常,驱动器120被关闭了,断开的连接也仅是驱动器120与代理组件130之间的连接,而执行器110与代理组件1430之间的连接依然保持着。代理组件130在发现一个驱动器120异常或被关闭之后,可以自动触发一个新的驱动器120的启动或请求处理器重新启动一个驱动器120。当一个新的驱动器被启动之后,可以与代理组件130建立连接,代理组件130更新对应执行器110和驱动器120的对应关系之后,又可以作为执行器110和驱动器120之间的信息中转节点,进行驱动指令和执行结果的转发,方便通过驱动器120的修复或重新启动,继续后续的任务的驱动和执行,减少因驱动器120的当前可用资源不足时导致的任务无法继续执行,进而导致的任务丢失或执行成功率低的现象。
在一些实施例中,如图2所示,所述计算框架还包括:
存储器140,与所述驱动器120连接;
所述驱动器120包括第一驱动器121及第二驱动器122;
所述第一驱动器121,用于当确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器121的当前可用内存资源的数量;
所述存储器140,用于存储所述第一驱动器提供的预定信息;
所述第二驱动器122所分配的内存资源的第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量,可选地,所述第四熟练挂科为所述第一数量与存储所述预定信息所需的内存资源的数量之和;所述第二驱动器122,用于在与所述代理组件建立连接之后,基于所述预定信息及执行结果驱动所述执行器。
在本实施例中所述计算框架还包括存储器140,所述存储器140可对应于各种存储介质,在本实施例中所述存储介质可为只读存储器、随机存储器或闪存等,在本实施例中可为区别专门分配给驱动器120的内存的另一个内存区域。
在本实施例中所述第一驱动器121在接收执行器110返回的执行结果所需的内存资源的容量,大于第一驱动器121当前剩余内存资源的容量时,若所述第一驱动器121继续从执行器110接收所述执行结果,显然可能出现部分执行结果丢失导致后续执行结果异常的问题,或者第一驱动器121由于内存资源不足出现执行故障等问题。在本实施例中由于所述存储器140的设置,所述第一驱动器121将预定信息都暂时存储到所述存储器140中。这里的预定信息可为驱动器驱动执行器执行任务的必要信息,例如,所述预定信息可包括所述第一驱动器121在进行任务解析和/或调度产生的各种信息。总之,所述第一驱动器121可以把与本次任务调度相关的所有信息,都可存储到所述存储器140。所述第二驱动器122,可以直接从代理组件130接收所述执行结果,也可以在第一驱动器121将自身的预定信息转存到存储器140之后,再从代理组件130将执行结果一并转存到存储器140,这样第二驱动器122还可以从存储器读取所述执行结果。
在一些实施例中,所述代理组件130也与所述存储器140连接,所述代理组件130,可以在出现第一驱动器121的当前可用内存容量小于所述执行结果所需的内存容量时,直接将所述执行结果,存储到所述存储器140中。所述预定信息第二驱动器122提供后续驱动服务的必要信息,例如,所述第一驱动器121中被分配的内存中很多用于第二驱动器122后续提供驱动服务的信息,也是所述预定信息的组成部分,也需要存储到所述存储器140中。
触发所述第二驱动器122启动的主体,可以是所述第一驱动器121,也可以是所述代理组件130,也可以是其他处理组件等。
当第一驱动器121将所述预定信息存储到存储器140之后,被启动的第二驱动器122可以从所述存储器140读取所述预定信息,并从代理组件130或存储器140读取所述执行结果,当所述第二驱动器122读取到所述预定信息及所述执行结果之后,就可以继续所述第一驱动器121提供驱动服务。通常此时,为所述第二驱动器122分配的内存资源的数量大于所述第一数量与存储所述预定信息所需的内存资源的数量之和。即在本实施例中为所述第二驱动器122分配的内存资源的数量大于所述预定信息及所述执行结果所需的资源数量之和。由于预定信息可为第一驱动器121对一个任务的驱动和执行到某一个阶段的各种信息,第二驱动器122启动之后,从所述存储器140加载所述预定信息及所述执行结果之后,就可以继续后续的驱动,从而确保了该任务不会丢失,提升了任务驱动执行的成功率。
在本实施例中虽然出现了第一驱动器121的关闭,第二驱动器122的启动,但是由于执行器110是通过代理组件130连接到各个驱动器120的,故驱动器的状态的切换对于执行器110相当于是透明的,故执行器110也不会因为驱动器120的状态出现状态异常的现象。
在本实施例中所述存储器140通常为包括公共存储区域的公共存储器,是被各个所述驱动器120所共用的。例如,所述存储器140连接到总线A上,各个驱动器120也连接到总线A上,这样话,任意一个驱动器120出现异常之后,都可以利用所述存储器140进行预定信息的暂时存储。当所述存储器140为公共存储器,所述计算框架还包括存储管理组件,所述存储管理组件,用于监控存储器140的存储状态,并根据所述存储器140的当前存储状态,为不同的驱动器120分配暂存区域,记录来自不同的驱动器发送的预定信息的存储位置,当一个替代前一个异常的驱动器启动之后,协助新启动的驱动器进行寻址,将对应的预定信息返回给第二驱动器。
在本实施例中将所述存储器140设置为公共存储器,这样可以提升公共存储区域的有效利用率,节省计算框架内更多的存储资源用于操作或服务的使用,减少计算框架所需的存储资源的硬件投入。
在另一些实施例中所述计算框架,在启动一个所述驱动器120之后,就为该驱动器120分配一个专属存储区域,该专属存储区域为所述存储器140的存储资源,这种存储器140可称之为专属存储器。这样的话,当一个驱动器120异常或当前内容量不足以存储所述执行结果时,所述驱动器120直接将所述预定信息发送给所述专属存储器。后续启动的第二驱动器122可以直接从第一驱动器121的专属存储器中读取所述预定信息,继续提供驱动服务。在本实施例中,当第二驱动器122重新启动之后,所述第二驱动器122连接到所述第一驱动器121的专属存储器140,所述第二驱动器122在其被分配的内存资源中记录所述专属存储器的标识,所述第一驱动器121的专属存储器转换成为所述第二驱动器122的专属存储器140。
在一些实施例中,所述第一驱动器121和第二驱动器122可为同时启动的驱动器,例如,所述第一驱动器121和所述第二驱动器122同时启动,且互为备份驱动器。当第一驱动器121在工作中出现了执行结果所需的内存资源的第一数量大于所述第二数量时,为了减少任务驱动执行的响应时延,已启动的所述第二驱动器122继续所述第一驱动器121提供驱动。若所述第二驱动器122时为与所述第一驱动器121同时启动的,且为所述第一驱动器121的备份驱动器时,在启动所述第二驱动器122时,为所述第二驱动器122分配的内存资源的容量大于所述第一驱动器121。
在另一些实施例中,所述第一驱动器121为第m次启动的驱动器;
所述第二驱动器122为第m+1次启动的驱动器;其中,所述m为正整数。
在本实施例中所述第一驱动器121和所述第二驱动器122是先后启动的驱动器。当所述第一驱动器121出现当前内资源的数量不够时,所述第二驱动器122启动,且为第二驱动器122分配的内存资源的第三数量至少大于所述预定信息及所述执行结果所需的内存资源的总和。
总之,本实施例提供中的第一驱动器121和第二驱动器122为基于同样的驱动代码启动的驱动器。
具体地如,所述第三数量为N倍所述第四数量;所述N为不小于2的整数。所述第四数量是为所述第一驱动器121所分配的内存资源的总数量。例如,所述第一驱动器121的总内存数量为P G,则所述第三数量等于N*P G。
在一些实施例中,所述第三数量的大小与M呈正相关关系。所述M为驱动器的启动次序。例如,一个第二驱动器为第3次启动的驱动器,则为该第二驱动器分配的内存资源容量,可是M*S;这里的S为一个驱动器所分配的最小内容量,也可以是重新启动驱动器的内存容量分配步长。前述第三数量的消息与M呈正相关关系,不局限于正比例关系,还可以是呈现指数关系等其他的正相关关系。
本实施例提供一种电子设备,包括前述任意一个技术方案计算框架。本实施例提供的电子设备包括存储介质和处理器。所述处理器可为多个,每一个所述处理器都可为多核处理器。所述存储介质可被划分为多个区域,所述处理器可对应于所述执行器和驱动器及代理组件。这样的电子设备,在响应任务请求时,具有任务请求丢失率低且任务请求响应成功率高。
本实施例中所述电子设备可为各种类型的电子设备,例如,可以个人电脑、运行在网络侧各种网络服务器,或各种服务集群等。
如图3所示,本实施例提供一种信息处理方法,包括:
步骤S110:驱动器生成驱动指令并将所述驱动指令发送给代理组件;
步骤S120:代理组件将所述驱动指令发送给对应的执行器;
步骤S130:所述执行器响应所述驱动指令,执行计算操作并生成执行结果;
步骤S140:所述执行器将所述执行结果发送给所述代理组件;
步骤S150:所述代理组件将所述执行结果发送给所述驱动器。
本实施例提供的信息处理方法,可为应用于前述计算框架的方法。
驱动器根据需要相应的任务请求,生成驱动指令,并将所述驱动指令发送给代理组件。
代理组件接收到所述驱动指令之后,发送给对应的执行器。在某些实施例中所述代理组件预先存储各个驱动器和执行器之间的对应关系,故可以发送给所述对应执行器。在另一些实施例中所述驱动器会告知代理组件,当前驱动指令是发送给哪一个执行器的,故代理组件接收到驱动指令之后,会根据驱动指令自身或驱动器发送的其他信息,确定出待接收该驱动指令的执行器,再发送给对应的执行器。
在步骤S130中执行器接收到驱动指令之后,开始执行被驱动的任务,并会产生对应的执行结果。
在步骤S140中,执行器需要向驱动器返回执行结果。在返回执行结果时,所述执行器先将执行结果发送给代理组件,代理组件接收到所述执行结果之后,若当前存在多个驱动器,则代理组件会根据预先存储的对应关系,或根据驱动指令的发送记录确定出返回给哪一个驱动器,并发送给对应的驱动器。若当前计算框架仅有一个处于工作状态的驱动器,则所述代理组件可以直接将该执行结果发送给所述驱动器。
在一些实施例中,所述代理组件接收到所述执行结果之后,会驱动存储所述执行结果所需的内存资源的数量(即所述第一数量),然后告知对应的驱动器。对应的驱动器,接收到所述第一数量的告知信息之后,就可以根据自身内存资源的使用状态,确定出其自身当前可用的内存资源的数量(第二数量),一旦出现第一数量大于所述第二数量的情况时,所述驱动器将自身的信息转移到存储器中,同时将从代理组件接收到所述执行结果和所述预定信息的一起发送给所述存储器。当然,在所述第二执行器与代理组件建立连接之后,由所述第二驱动器从所述代理组件读取。
在一些实施例中,前述实施例中的存储器140也可以与代理组件130直接相连,当第一驱动器121确定出第一数量大于第二数量时,所述代理组件130直接将所述执行结果发送给所述存储器140。可选地,所述第一驱动器121,也会将自身与第二驱动器122继续后续驱动所需的其他信息,和所述执行结果一同发送给所述存储器140存储。
在本实施例中所述执行结果存储到所述存储器的执行主体,不局限于所述第一驱动器,还可以是所述代理组件。
在一些实施例中,如图4所示,所述方法还包括:
步骤S210:第一驱动器确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器的当前可用内存资源的数量;
步骤S220:当所述第一数量大于所述第二数量时,将预定信息存储到存储器;
步骤S230:启动第二驱动器;
步骤S240:为所述第二驱动器分配第三数量的内存资源;其中,所述第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量,进一步地,可选地,所述第四数量可为所述第一数量与存储所述预定信息所需的内存资源的数量之和;
步骤S250:当第二驱动器与代理组件建立连接之后,由所述第二驱动器基于所述预定信息及所述执行结果驱动所述执行器。
在本实施例中当出现了所述第一数量大于所述第二数量时,所述第一驱动关闭,包括执行结果的预定信息被存储到存储器。替代所述第一驱动器的第二驱动器启动。这里的第二驱动器所分配的内存容量至少大于所述第一数量,可选为大于所述第一驱动器所分配的总内存容量。
第二驱动器与代理组件建立连接之后,基于预定信息及执行结果继续所述执行器,提供后续驱动服务,减少因为第一数量大于第二数量导致的任务无法继续驱动和执行的现象,提升任务的执行成功率。所述执行结果可为由所述第一驱动器将自身存储的信息转存到存储器之后,从代理组件读取并存储到存储器,在所述第二驱动器启动之后,一并从所述存储器读取所述预定信息及所述执行结果。在另一些实施例中,所述第二驱动器,可以仅从所述存储器读取所述预定信息,在于代理组件建立连接之后,从所述代理组件读取所述执行结果,再结合所述预定信息及所述执行结果,继续提供驱动服务。
在一些实施例中,所述方法还包括:
所述第二驱动器从所述存储器读取所述预定信息;
基于所述预定信息,所述第二驱动器进行配置。
在本实施例中所述第二驱动器进行配置,可包括:根据所述第二预定信息的信息内容或预定信息的数据量等参数,配置其自身的运行参数,以及配置对应任务的调度和分配参数等。
在一些实施例中,所述第一驱动器为第m次启动的驱动器;所述第二驱动器为第m+1次启动的驱动器;其中,所述m为正整数。
在本实施例中所述驱动器可为处理器或处理电路,通过预定特定的驱动代码形成的。所述第m次启动的驱动器可以称之为第m驱动器,所述m+1次启动的驱动器,为第m+1驱动器。这里的第m驱动器和第m+1驱动器为基于同一段驱动代码形成的驱动器。
在有些实施例中,所述步骤S240可包括:
为所述第二驱动器分配N倍第四数量的内存资源;其中,所述N为不小于2的整数;所述第四数量是所述第一驱动器分配的内存资源的总数量。
在本实施例中后一个次启动的驱动器所分配的内存资源的总量,是前一个驱动器所分配内存资源的N倍,这样成倍的增长利用同一段驱动代码启动的驱动器所分配的内存容量,显然可以减少后续驱动器当前可用的内存容量依然无法满足执行结果存储需求的现象。
可选地,所述步骤S240可包括:根据所述m+1,确定所述第三数量;其中,所述第三数量与所述m+1正相关。这里的m+1为同一段驱动代码被启动的次数。这里的正相关可为正比例关系或指数关系等。
以下结合上述任意实施例提供几个具体示例:
示例一:
本示例提供一种信息处理方法,包括:
1、执行器不再直接连接驱动器,而是通过代理组件连接所述驱动器;
2、当驱动器1出现内存配置不满足实际需求时,驱动器1将所有必要信息做本地持久化操作,例如,将所有必要信息(对应于前述预定信息)存储到本地非瞬间存储介质中;
3)驱动器1停止驱动服务,例如,驱动器1关闭。
4)按照前一次内存配置的2倍启动新的驱动器2,如第一启动的驱动器1的内存容量配置为1G,则第二次启动的驱动器2的内存容量配置为2G,第三次启动的驱动器3次内存容量配置为4G。
5)新驱动器2加载本地持久化数据,确保与原有驱动器1信息一致,并重新与代理组件建立连接,从代理组件获取执行器返回的执行结果,并基于本地持久化数据及执行结果继续驱动器1所提供的驱动服务。
示例二:
如图5所示,本示例提供一种信息处理方法,包括:
执行器1和执行器2,分别向代理组件写入执行结果;
驱动器1的当前可用内存容量不足以存储所有的执行结果;
驱动器1向本地持久化保存的存储器写入预定信息,这里的预定信息可为驱动器1提供驱动服务所有必要的信息;
驱动器2启动;这里的驱动器2所分配的总内存容量大于驱动器1所分配的总内存容量;驱动器2所分配的总内存容量,大于执行结果所需的第一数量;
代理组件,断开与驱动器1的连接,并向驱动器2写入执行结果,本地持久化存储器向驱动器2写入预定信息;
驱动器2基于所述预定信息及执行结果继续提供驱动服务。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种计算框架,包括:
执行器,用于根据驱动指令执行计算操作,生成执行结果;
驱动器,用于生成所述驱动指令;
代理组件,分别与所述执行器及所述驱动器连接,用于将所述驱动指令发送给对应的所述执行器,并将所述执行结果发送给对应的所述驱动器。
2.根据权利要求1所述的计算框架,其特征在于,
所述计算框架还包括:
存储器,与所述驱动器连接;
所述驱动器包括第一驱动器和第二驱动器;
所述第一驱动器,用于确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器的当前可用内存资源的数量;
所述存储器,用于当所述第一数量大于所述第二数量时存储将所述第一驱动器提供的预定信息;
所述第二驱动器所分配的内存资源的第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量;所述第二驱动器,用于在与所述代理组件建立连接之后,基于所述预定信息及所述执行结果驱动所述执行器。
3.根据权利要求2所述的计算框架,其特征在于,
所述第一驱动器为第m次启动的驱动器;
所述第二驱动器为第m+1次启动的驱动器;其中,所述m为正整数。
4.根据权利要求2或3所述的计算框架,其特征在于,
所述第三数量为N倍为第四数量;所述N为不小于2的整数,所述第四数量是所述第一驱动器分配的内存资源的总数量。
5.一种电子设备,其特征在于,包括权利要求1至4任一项所述的计算框架。
6.一种信息处理方法,其特征在于,包括:
驱动器生成驱动指令并将所述驱动指令发送给代理组件;
代理组件将所述驱动指令发送给对应的执行器;
所述执行器响应所述驱动指令,执行计算操作并生成执行结果;
所述执行器将所述执行结果发送给所述代理组件;
所述代理组件将所述执行结果发送给所述驱动器。
7.根据权利要求6所述的信息处理方法,其特征在于,
所述方法还包括:
第一驱动器确定当前接收的执行结果所需的内存资源的第一数量是否大于第二数量;其中,所述第二数量为所述第一驱动器的当前可用内存资源的数量;
当所述第一数量大于所述第二数量时,将预定信息存储到存储器;
启动第二驱动器;
为所述第二驱动器分配第三数量的内存资源;其中,所述第三数量大于第四数量,所述第四数量是所述第一驱动器分配的内存资源的总数量;
当第二驱动器与代理组件建立连接之后,由所述第二驱动器基于所述预定信息及所述执行结果驱动所述执行器。
8.根据权利要求7所述的信息处理方法,其特征在于,所述方法还包括:
所述第二驱动器从所述存储器读取所述预定信息;
基于所述预定信息,所述第二驱动器进行配置。
9.根据权利要求7所述的信息处理方法,其特征在于,
所述第一驱动器为第m次启动的驱动器;
所述第二驱动器为第m+1次启动的驱动器;其中,所述m为正整数。
10.根据权利要求7、8或9所述的信息处理方法,其特征在于,
所述为所述第二驱动器分配第三数量的内存资源,包括:
为所述第二驱动器分配N倍第四数量的内存资源;其中,所述N为不小于2的整数;所述第四数量是所述第一驱动器分配的内存资源的总数量。
CN201710140806.4A 2017-03-10 2017-03-10 计算框架、电子设备及信息处理方法 Active CN107092531B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN201710140806.4A CN107092531B (zh) 2017-03-10 2017-03-10 计算框架、电子设备及信息处理方法
US15/918,116 US10877804B2 (en) 2017-03-10 2018-03-12 Computing apparatus, electronic device, and information processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710140806.4A CN107092531B (zh) 2017-03-10 2017-03-10 计算框架、电子设备及信息处理方法

Publications (2)

Publication Number Publication Date
CN107092531A true CN107092531A (zh) 2017-08-25
CN107092531B CN107092531B (zh) 2020-06-23

Family

ID=59649350

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710140806.4A Active CN107092531B (zh) 2017-03-10 2017-03-10 计算框架、电子设备及信息处理方法

Country Status (2)

Country Link
US (1) US10877804B2 (zh)
CN (1) CN107092531B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389791A (zh) * 2019-05-22 2019-10-29 百度在线网络技术(北京)有限公司 组件调度方法、装置、设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103324539A (zh) * 2013-06-24 2013-09-25 浪潮电子信息产业股份有限公司 一种作业调度管理系统及方法
CN103713942A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 在集群中调度运行分布式计算框架的方法和系统
US20160070593A1 (en) * 2014-09-10 2016-03-10 Oracle International Corporation Coordinated Garbage Collection in Distributed Systems
CN106326457A (zh) * 2016-08-29 2017-01-11 山大地纬软件股份有限公司 基于大数据的人社人员档案袋数据库的构建方法及系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9052990B2 (en) * 2012-11-20 2015-06-09 International Business Machines Corporation Techniques for managing pinned memory

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103713942A (zh) * 2012-09-28 2014-04-09 腾讯科技(深圳)有限公司 在集群中调度运行分布式计算框架的方法和系统
CN103324539A (zh) * 2013-06-24 2013-09-25 浪潮电子信息产业股份有限公司 一种作业调度管理系统及方法
US20160070593A1 (en) * 2014-09-10 2016-03-10 Oracle International Corporation Coordinated Garbage Collection in Distributed Systems
CN106326457A (zh) * 2016-08-29 2017-01-11 山大地纬软件股份有限公司 基于大数据的人社人员档案袋数据库的构建方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
BLUESKIN: "Spark java.lang.OutOfMemoryError: Java heap space", 《HTTPS://STACKOVERFLOW.COM/QUESTIONS/21138751/SPARK-JAVA-LANG-OUTOFMEMORYERROR-JAVA-HEAP-SPACE》 *
BREEZE_LSW: "Spark排错与优化", 《HTTPS://WWW.JIANSHU.COM/P/38E494CE14A1》 *
SWAROOP RAMACHANDRA: "Monitoring Apache Spark: Why Is It Challenging?", 《HTTPS://DZONE.COM/ARTICLES/MONITORING-APACHE-SPARK-WHY-IS-IT-CHALLENGING》 *
数学系的数据挖掘民工: "Learning Spark (Python版) 学习笔记(三)----工作原理、调优与Spark SQL", 《HTTPS://WWW.CNBLOGS.COM/CHARLOTTE77/P/5468968.HTML》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110389791A (zh) * 2019-05-22 2019-10-29 百度在线网络技术(北京)有限公司 组件调度方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN107092531B (zh) 2020-06-23
US20180260250A1 (en) 2018-09-13
US10877804B2 (en) 2020-12-29

Similar Documents

Publication Publication Date Title
CN103605722B (zh) 数据库监控方法及装置、设备
CN103414712B (zh) 一种分布式虚拟桌面管理系统和方法
CN103581225A (zh) 分布式系统中的节点处理任务的方法
CN108984320A (zh) 一种消息队列集群防脑裂方法及装置
CN110457197A (zh) 服务测试方法、装置、计算机设备和存储介质
US12111733B2 (en) Orchestrating a container-based application on a terminal device
JPH036539B2 (zh)
CN113515408A (zh) 一种数据容灾方法、装置、设备及介质
CN108880898A (zh) 主备容器系统切换方法及装置
CN115297124B (zh) 一种系统运维管理方法、装置及电子设备
CN114553900B (zh) 一种分布式块存储管理系统、方法及电子设备
CN106385330A (zh) 一种网络功能虚拟化编排器的实现方法及装置
US6219801B1 (en) Work inheriting system
CN107092531A (zh) 计算框架、电子设备及信息处理方法
CN110928704A (zh) 消息处理方法、消息处理系统、服务器及计算机存储介质
CN104657240B (zh) 多内核操作系统的失效控制方法及装置
CN109508261A (zh) 一种基于大数据的电网数据节点备份方法及备份系统
CN117033016A (zh) 流程调度系统、方法、电子设备及存储介质
JP2800886B2 (ja) Lan制御方式
CN116149814A (zh) 一种基于kafka的数据持久化任务分布式调度方法及系统
CN115934252A (zh) 一种基于Kafka实现全自动负载均衡消费消息的方法及系统
CN109040491A (zh) 挂机行为处理方法、装置、计算机设备及存储介质
CN115550424A (zh) 一种数据缓存方法、装置、设备及存储介质
WO2022057865A1 (zh) 聚合链路的mac地址保活方法、设备和存储介质
JP2000132519A (ja) 分散シミュレーションシステム

Legal Events

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