轻量级分布式计算平台及其计算资源管控方法
技术领域
本发明涉及计算机技术领域,特别是涉及一种轻量级分布式计算平台及其计算资源管控方法。
背景技术
计算和存储是信息产业发展的两大主题,分布式计算平台用于整合计算和存储资源,如何平衡计算的灵活性和数据分析的高效性一直是学术界和产业界的研究热点。大数据概念出现后,以数据为中心的分布式系统研究越来越得到人们的关注,设计出具有灵活高效的面向数据的分布式系统成为了当前系统架构研究的重要课题。
传统的分布式计算平台主要采用MPI(Message Passing Interface,信息传递接口)和MapReduce(编程模型)两种典型的并行计算编程方法进行程序注入,其计算资源管控机制各不相同。由于采用程序注入的方式,并且需要配合重量级文件系统才能取得较好的使用效果,其使用灵活性较低。传统的分布式计算平台存在使用灵活性低的缺点。
发明内容
基于此,有必要针对上述问题,提供一种使用灵活性高的轻量级分布式计算平台及其计算资源管控方法。
一种轻量级分布式计算平台,包括依次通信连接的应用服务器、网关服务器和节点服务器,
所述应用服务器用于接收计算原子注入请求并发送至所述网关服务器;接收计算原子启动命令并发送至所述网关服务器;接收计算结果获取请求并发送至所述网关服务器,以及接收所述网关服务器对应所述计算结果获取请求返回的计算结果并输出;
所述网关服务器用于根据所述计算原子注入请求注入计算原子至对应的节点服务器;根据所述计算原子启动命令查找对应计算原子所在的节点服务器,并控制根据所述计算原子启动命令查找到的节点服务器启动对应的计算原子;以及根据所述计算结果获取请求获取对应计算原子的计算结果并返回至所述应用服务器。
一种轻量级分布式计算平台的计算资源管控方法,包括以下步骤:
应用服务器接收计算原子注入请求并发送至网关服务器;
所述网关服务器根据所述计算原子注入请求注入计算原子至对应的节点服务器;
所述应用服务器接收计算原子启动命令并发送至所述网关服务器;
所述网关服务器根据所述计算原子启动命令查找对应计算原子所在的节点服务器,并控制根据所述计算原子启动命令查找到的节点服务器启动对应的计算原子;
所述应用服务器接收计算结果获取请求并发送至所述网关服务器;
所述网关服务器根据所述计算结果获取请求获取对应计算原子的计算结果并返回至所述应用服务器;
所述应用服务器接收所述网关服务器对应所述计算结果获取请求返回的计算结果并输出。
上述轻量级分布式计算平台及其计算资源管控方法,应用服务器接收计算原子注入请求并发送至网关服务器,网关服务器根据计算原子注入请求注入计算原子至对应的节点服务器。应用服务器接收计算原子启动命令并发送至网关服务器,网关服务器根据计算原子启动命令查找对应计算原子所在的节点服务器,并控制根据计算原子启动命令查找到的节点服务器启动对应的计算原子。应用服务器接收计算结果获取请求并发送至网关服务器,网关服务器根据计算结果获取请求获取对应计算原子的计算结果并返回至网关服务器;应用服务器接收网关服务器对应计算结果获取请求返回的计算结果并输出。根据用户输入的指令进行计算原子的注入、启动和计算结果的反馈,能够支持用户把不同程序模型的计算原子注入进行并行计算。并行计算模式由用户来控制,让用户控制不同程序模型的计算原子不仅简化了系统管理和控制计算资源的复杂性,也增加了用户针对并行计算设计程序模型的灵活度,使用灵活性高。
附图说明
图1为一实施例中轻量级分布式计算平台的结构图。
图2为一实施例中轻量级分布式计算平台的计算资源管控方法的流程图。
图3为另一实施例中轻量级分布式计算平台的计算资源管控方法的流程图。
图4为一实施例中计算原子注入到物理路径中并对该路径下的数据进行计算的示意图。
具体实施方式
在一个实施例中,一种轻量级分布式计算平台,如图1所示,包括依次通信连接的应用服务器110、网关服务器120和节点服务器130。
应用服务器110用于接收计算原子注入请求并发送至网关服务器120;接收计算原子启动命令并发送至网关服务器120;接收计算结果获取请求并发送至网关服务器120,以及接收网关服务器120对应计算结果获取请求返回的计算结果并输出。
网关服务器120用于根据计算原子注入请求注入计算原子至对应的节点服务器130;根据计算原子启动命令查找对应计算原子所在的节点服务器130,并控制根据计算原子启动命令查找到的节点服务器130启动对应的计算原子;以及根据计算结果获取请求获取对应计算原子的计算结果并返回至应用服务器110。
具体地,节点服务器130的数量为多个,网关服务器120与多个节点服务器130组成LDFS(Lightweight Distributed File System,轻量级分布式文件系统),各节点服务器130作为集群服务节点进行轻量级分布式文件存储。计算原子注入是指将用户处理后的可执行文件,通过协议上传到集群服务节点,然后请求启动计算原子,并获取计算结果或服务的过程。计算原子的注入依次为发布计算原子、启动计算原子、获取计算结果或服务。计算原子注入的三个步骤互相独立,需按顺序依次执行。
轻量级分布式计算平台的计算资源均来自于用户通过协议注入的计算原子,计算资源存储于LDFS中。计算资源由网关服务器120统一管理和控制,网关服务器120负责管理计算原子的物理位置,也负责调度节点服务器130来执行计算原子。计算原子在节点服务器130上是被动执行的,执行条件来自于网关服务器120的命令,而网关服务器120的调度依据来自于应用服务器110接收到的用户所发起的计算协议请求。
用户可通过接入协议请求应用服务器110实现计算原子的注入,注入成功后把计算原子存入LDFS中,用于后续启动进行数据计算。用户输入的计算原子注入请求可包括需要注入的计算原子,以及该计算原子所要计算的数据存储在LDFS中对应节点服务器130的物理路径。网关服务器120根据计算原子注入请求中携带的物理路径将计算原子注入至对应节点服务器130与所要计算的数据相同物理路径下,以便后续启动计算原子后可直接对数据进行计算,操作简便可靠。可以理解,可以是先存入需要计算的数据再注入计算原子,也可以是先注入计算原子后再存入数据,只需保证计算原子与数据存储在相同的物理路径即可。
在成功注入计算原子之后,用户可以通过接入协议向应用服务器110请求计算原子的启动,网关服务器120收到启动的协议命令时,则按计算原子的物理路径找到LDFS中其所在的节点服务器130,并让节点服务器130启动该计算原子。
在成功启动计算原子之后,用户可以通过接入协议向应用服务器110发起获取计算结果的请求,当网关服务器120收到获取计算结果的命令时,先找到计算原子所在的节点服务器130,然后再找到该计算原子在这个节点服务器130中的所在路径,由于计算原子产生的计算结果也存于该计算原子所在路径下,所以网关服务器120会让节点服务器130根据这个路径找到计算结果,然后把结果返回给应用服务器110,最后应用服务器110把计算结果返回给用户。应用服务器110输出计算结果的具体方式并不唯一,可以是输出至显示器进行显示,或者通过语音播报形式输出,还可以是输出至存储器进行存储等。
本实施例中,该平台利用AGW(App Gate Work,应用 网关 节点)协议作为各个服务器之间通信的标准,通过LDFS与原子注入方式结合实现面向数据的分布式计算。
上述轻量级分布式计算平台,根据用户输入的指令进行计算原子的注入、启动和计算结果的反馈,能够支持用户把不同程序模型的计算原子注入进行并行计算。并行计算模式由用户来控制,让用户控制不同程序模型的计算原子不仅简化了系统管理和控制计算资源的复杂性,也增加了用户针对并行计算设计程序模型的灵活度,使用灵活性高。
轻量级分布式计算平台中的计算资源安全隔离执行,节点服务器130是执行计算原子的地方,由网关服务器120调度节点服务器130为每一个计算原子开启一个新的服务进程,避免计算之间的干扰,提供安全可靠的通信。该进程只为对应的用户应用程序提供服务,以避免来自于其它计算的打扰,从而实现用户应用和分布式计算平台之间的实时安全交互。
依据计算原子启动后的运行方式将计算原子划分为两类:一类是完成计算任务后能够自动退出系统的纯计算原子,另一类是计算原子启动后会以服务形式运行在系统中的服务原子。
在一个实施例中,计算原子包括纯计算原子,网关服务器120根据计算结果获取请求获取对应计算原子的计算结果并返回至应用服务器110,包括:
监控各节点服务器130中纯计算原子的执行情况,捕捉纯计算原子执行完成信息并收集计算结果;采用异步的方式将纯计算原子输出的计算结果重定向到预设的计算结果文件中;在接收到计算结果获取请求后,提取与计算结果获取请求对应的计算结果文件通过反向连接的方式发送至应用服务器110。
具体地,纯计算原子是指完成指定计算任务时可主动退出计算系统的计算原子,该类计算原子的运行生命周期是有限的。在纯计算原子注入设计中,通过监控每一个计算原子的执行情况,捕捉计算原子执行完成信息并收集计算结果,通知用户获取计算结果。通过异步获取计算结果,降低网关服务器120运行负载。将各纯计算原子的重定向到对应的计算结果文件中,在接收到计算结果获取请求后,直接获取对应的计算结果文件发送至应用服务器110,提高数据获取的效率和准确性。
本实施例中,针对纯计算原子提供了对应的注入设计,纯计算原子的主要操作包括:发布纯计算原子;根据协议里包含的内容找到纯计算原子所在位置并启动,计算完成之后将纯计算原子产生的结果重定向到结果文件中,纯计算原子运行的生命周期结束;用户通过协议请求应用服务器110异步获取计算结果。可以理解,在其他实施例中,也可以是直接根据计算结果获取请求查找对应纯计算原子所在的节点服务器130,控制根据计算结果获取请求查找到的节点服务器130获取对应纯计算原子的计算结果返回给用户。
在一个实施例中,计算原子包括服务原子,计算原子注入请求包括服务原子的文件类型标识,或服务原子的关联服务原子的数据路径。服务原子的关联服务原子,即是指与该服务原子存在关联的其他服务原子。网关服务器120根据计算原子启动命令查找对应计算原子所在的节点服务器,并控制查找到的节点服务器启动计算原子启动命令对应的计算原子之后,还用于在启动的计算原子为服务原子时,返回启动反馈信息至应用服务器110。
服务原子是指注入计算节点后以服务模式运行于节点中的计算程序,服务原子一般不主动退出计算系统,其生命周期是无限的。服务原子的注入方式分为两种,一种是和LDFS中的其他服务原子不存在关联的注入方式,注入的时候只需在协议中加入属于服务原子的文件类型标识,在这种注入方式下计算原子会被随机分布到LDFS中的节点;另一种是和LDFS中的其他服务原子存在关联的注入方式,注入的时候需在协议中加入存在关联的其他服务原子的数据路径,在这种注入方式下计算原子会被随机分布到LDFS中的节点。
用户在发起启动服务计算原子命令后,会收到来自于是否成功启动的反馈信息,以便于用户了解是否启动成功。若成功则表示该服务原子会一直处于监听状态准备接收用户程序后续的多次请求。在服务原子的运行过程中可能会产生一些重要的数据,这些数据的命名规则也和纯计算原子结果文件的命名规则一样,当用户需要获取这些数据时也可以采用与纯计算原子获取计算结果相同的方法,在此不再赘述。
本实施例中,针对服务原子提供了对应的注入设计,服务型原子的主要操作如下:发布服务原子;根据协议里包含的服务原子之间的依赖关系启动服务原子,在用户请求时服务原子把计算结果以数据流的形式逐一反馈给用户;服务原子在没有收到用户主动退出命令时会一直运行在节点服务器130上,当收到网关服务器120的退出命令才终止运行。
可以理解,在一个实施例中,计算原子可同时包括纯计算原子和服务原子。网关服务器120在启动服务原子后返回反馈信息给用户,监控各节点服务器130中纯计算原子和服务原子的执行情况,采用异步的方式将纯计算原子和服务原子的计算结果重定向到对应的计算结果文件。在接收到计算结果获取请求后,获取对应的计算结果文件发送至应用服务器110。
在一个实施例中,应用服务器110在网关服务器120根据计算原子启动命令查找对应计算原子所在的节点服务器,并控制根据计算原子启动命令查找到的节点服务器130启动对应的计算原子之后,还用于接收计算原子关闭命令并发送至网关服务器120;网关服务器120还用于根据计算原子关闭命令查找对应计算原子所在的节点服务器130,并控制根据计算原子关闭命令查找到的节点服务器130关闭对应的计算原子。
用户可以通过接入协议向应用服务器110请求计算原子的关闭,网关服务器120同样可按计算原子的物理路径找到LDFS中其所在的节点服务器130,并让节点服务器130关闭该计算原子。用户可通过向应用服务器110发送不同的命令控制对应计算原子的启动或关闭,提高了轻量级分布式计算平台的计算资源管理便利性。
在一个实施例中,应用服务器110在网关服务器120将根据计算原子注入请求注入计算原子至对应的节点服务器130之后,还用于接收计算原子更新请求并发送至网关服务器120;网关服务器120还用于根据计算原子更新请求查找对应计算原子所在的节点服务器,并控制根据计算原子更新请求查找到的节点服务器对对应的计算原子进行更新。
用户同样可通过接入协议请求对已注入的计算原子进行更新,在更新计算原子的协议中加入被更新的计算原子路径,然后请求网关服务器120进行计算原子的更新。用户可通过向应用服务器110发送不同的请求实现计算原子的注入和更新,进一步提高了轻量级分布式计算平台的计算资源管理便利性。
在一个实施例中,一种轻量级分布式计算平台的计算资源管控方法,基于上述轻量级分布式计算平台实现。如图2所示,该方法包括以下步骤:
步骤S102:应用服务器接收计算原子注入请求并发送至网关服务器。
用户可通过接入协议请求应用服务器实现计算原子的注入,用于后续启动进行数据计算。
步骤S104:网关服务器将根据计算原子注入请求注入计算原子至对应的节点服务器。
节点服务器的数量为多个,网关服务器与多个节点服务器组成LDFS,各节点服务器作为集群服务节点进行轻量级分布式文件存储,注入成功后的计算原子存入LDFS中。计算原子注入是指将用户处理后的可执行文件,通过协议上传到集群服务节点,然后请求启动计算原子,并获取计算结果或服务的过程。计算原子的注入依次为发布计算原子、启动计算原子、获取计算结果或服务。
步骤S106:应用服务器接收计算原子启动命令并发送至网关服务器。
在成功注入计算原子之后,用户可以通过接入协议向应用服务器请求计算原子的启动。
步骤S108:网关服务器根据计算原子启动命令查找对应计算原子所在的节点服务器,并控制根据计算原子启动命令查找到的节点服务器启动对应的计算原子。
网关服务器负责管理计算原子的物理位置,也负责调度节点服务器来执行计算原子。计算原子在节点服务器上是被动执行的,执行条件来自于网关服务器的命令。网关服务器收到启动的协议命令时,则按计算原子的物理路径找到LDFS中其所在的节点服务器,并让节点服务器启动该计算原子。
步骤S110:应用服务器接收计算结果获取请求并发送至网关服务器。
在成功启动计算原子之后,用户可以通过接入协议向应用服务器发起获取计算结果的请求。
步骤S112:网关服务器根据计算结果获取请求获取对应计算原子的计算结果并返回至网应用服务器。
当网关服务器收到获取计算结果的命令时,先找到计算原子所在的节点服务器,然后再找到该计算原子在这个节点服务器中的所在路径,找到计算结果返回给应用服务器。
步骤S114:应用服务器接收网关服务器对应计算结果获取请求返回的计算结果并输出。
应用服务器把计算结果返回给用户,应用服务器输出计算结果的具体方式并不唯一,可以是输出至显示器进行显示,或者通过语音播报形式输出,还可以是输出至存储器进行存储等。
上述轻量级分布式计算平台的计算资源管控方法,,根据用户输入的指令进行计算原子的注入、启动和计算结果的反馈,能够支持用户把不同程序模型的计算原子注入进行并行计算。并行计算模式由用户来控制,让用户控制不同程序模型的计算原子不仅简化了系统管理和控制计算资源的复杂性,也增加了用户针对并行计算设计程序模型的灵活度,使用灵活性高。
将计算资源安全隔离执行,节点服务器是执行计算原子的地方,由网关服务器调度节点服务器为每一个计算原子开启一个新的服务进程,避免计算之间的干扰,提供安全可靠的通信。该进程只为对应的用户应用程序提供服务,以避免来自于其它计算的打扰,从而实现用户应用和分布式计算平台之间的实时安全交互。
在一个实施例中,计算原子包括纯计算原子,步骤S112包括:
监控各节点服务器中纯计算原子的执行情况,捕捉纯计算原子执行完成信息并收集计算结果;采用异步的方式将纯计算原子输出的计算结果重定向到预设的计算结果文件中;在接收到计算结果获取请求后,提取与计算结果获取请求对应的计算结果文件通过反向连接的方式发送至应用服务器。
通过异步获取计算结果,降低网关服务器运行负载。将各纯计算原子的重定向到对应的计算结果文件中,在接收到计算结果获取请求后,直接获取对应的计算结果文件发送至应用服务器,提高数据获取的效率和准确性。可以理解,在其他实施例中,也可以是直接根据计算结果获取请求查找对应纯计算原子所在的节点服务器,控制根据计算结果获取请求查找到的节点服务器获取对应纯计算原子的计算结果返回给用户。
在一个实施例中,计算原子包括服务原子,计算原子注入请求包括服务原子的文件类型标识,或服务原子的关联服务原子的数据路径。步骤S108之后,还包括网关服务器在启动的计算原子为服务原子时,返回启动反馈信息至应用服务器的步骤。
用户在发起启动服务计算原子命令后,会收到来自于是否成功启动的反馈信息,以便于用户了解是否启动成功。若成功则表示该服务原子会一直处于监听状态准备接收用户程序后续的多次请求。在服务原子的运行过程中可能会产生一些重要的数据,这些数据的命名规则也和纯计算原子结果文件的命名规则一样,当用户需要获取这些数据时也可以采用与纯计算原子获取计算结果相同的方法,在此不再赘述。
可以理解,在一个实施例中,计算原子可同时包括纯计算原子和服务原子。网关服务器在启动服务原子后返回反馈信息给用户,监控各网关服务器中纯计算原子和服务原子的执行情况,采用异步的方式将纯计算原子和服务原子的计算结果重定向到对应的计算结果文件。在接收到计算结果获取请求后,获取对应的计算结果文件发送至应用服务器。
在一个实施例中,如图3所示,步骤S108之后,该方法还包括步骤S116和步骤S118。
步骤S116:应用服务器接收计算原子关闭命令并发送至网关服务器。
步骤S118:网关服务器根据计算原子关闭命令查找对应计算原子所在的节点服务器,并控制根据计算原子关闭命令查找到的节点服务器关闭对应的计算原子。
步骤S116和步骤S118具体可在步骤S110之前,也可在步骤S110之后。用户可以通过接入协议向应用服务器请求计算原子的关闭,网关服务器同样可按计算原子的物理路径找到LDFS中其所在的节点服务器,并让节点服务器关闭该计算原子。用户可通过向应用服务器发送不同的命令控制对应计算原子的启动或关闭,提高了轻量级分布式计算平台的计算资源管理便利性。
在一个实施例中,步骤S104之后,该方法还包括步骤S120和步骤S122。
步骤S120:应用服务器接收计算原子更新请求并发送至网关服务器。
步骤S122:网关服务器根据计算原子更新请求查找对应计算原子所在的节点服务器,并控制根据计算原子更新请求查找到的节点服务器对对应的计算原子进行更新。
步骤S120和步骤S122可以在步骤S106之前,也可以在步骤S106之后。用户同样可通过接入协议请求对已注入的计算原子进行更新,在更新计算原子的协议中加入被更新的计算原子路径,然后请求网关服务器进行计算原子的更新。用户可通过向应用服务器发送不同的请求实现计算原子的注入和更新,进一步提高了轻量级分布式计算平台的计算资源管理便利性。
为便于更好地理解上述轻量级分布式计算平台,以下结合具体的实施方式进行详细解释说明。
如图4所示为计算原子注入到物理路径中并对该路径下的数据进行计算的过程,首先A、B、C三个文件通过网关服务器调度之后先实时写入物理路径映射的一个节点进行存储,存储之后节点会在后台异步复制A文件为两份副本到物理路径映射的另外两个节点存储作为备份,以备后续并发访问的时候分散传输。计算原子a通过追踪文件A注入的方式,网关服务器根据物理路径把计算原子a分布到A文件所在的三个节点,应用服务器110向轻量级分布式计算平台发起启动计算原子a对A文件进行计算的请求命令后,平台会根据计算原子a所在的物理路径快速找到A文件进行实时计算之后快速返回结果。A、B、C三个文件分布在LDFS的不同存储结点上,分别具有同样的三个副本,计算原子a分布在A文件所在的三个存储节点上且和A文件同处在一个物理路径下,由此来达到分布式存储的目的,也让计算向数据迁移变得更容易。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。