logo好方法网

一种协同运算与自适应分布式的计算引擎

技术摘要:
本发明公开了一种协同运算与自适应分布式的计算引擎,包括动力核心计算引擎系统,动力核心计算引擎系统包括节点探测器、任务分发器、任务调度器、计算结果回收器、任务计算器,节点探测器的输出端与任务调度器的输入端通过数据线连接,任务调度器的输出端分别与任务分  全部
背景技术:
随着互联网的飞速发展,大数据技术已被应用于各行各业,庞大的数据量不能再 由一台中心服务器完全处理,需要将数据切片分发,由多台计算机分别计算,再上传运算结 果,将结果统一合并得出数据结论。 在进行大数据分析工作时,通常使用的一些计算引擎必须按照特定的规范进行代 码开发如Spark的Map和Reduce,只有在根据计算引擎给出的规范下开发才能将一项任务进 行切分,将单个切分后的任务分发给一些分布式节点进行计算,不仅如此,在使用这些计算 引擎时,需要提前配置好节点信息,才能在整个分布式环境下互相发现彼此。 现有的一些分布式计算引擎主要存在三个缺点:1.必须按照特定的开发规范才能 识别某项任务并且切分;2.必须在使用前进行环境配置,才能让节点群互相发现并保持连 接;3.必须拥有统一的数据管理中心如hdfs,让所有节点从数据中心中获取数据。
技术实现要素:
本发明的目的在于提供一种协同运算与自适应分布式的计算引擎,以解决:1.必 须按照特定的开发规范才能识别某项任务并且切分;2.必须在使用前进行环境配置,才能 让节点群互相发现并保持连接;3.必须拥有统一的数据管理中心如hdfs,让所有节点从数 据中心中获取数据。 为实现上述目的,本发明提供如下技术方案:一种协同运算与自适应分布式的计 算引擎,包括动力核心计算引擎系统,所述动力核心计算引擎系统包括节点探测器、任务分 发器、任务调度器、计算结果回收器、任务计算器,所述节点探测器的输出端与任务调度器 的输入端通过数据线连接,所述任务调度器的输出端分别与任务分发器的输入端、计算结 果回收器的输入端以及任务计算器的输入端通过数据线连接。 优选的,所述节点探测器建立连接方式为Http或Socket,所述节点探测器主要包 含三个功能: 通过广播在局域网中发现其他计算引擎: 在局域网中不定时地发送探测请求(广播),请求局域网中的其他计算引擎,如果 一个计算引擎接收到该探测请求,那么将进行功能(响应其他计算引擎的发现请求)响应其 他人的计算引擎。整个流程完成节点的发现与适配工作。 响应其他计算引擎的发现请求: 当节点探测器接收到探测请求,则会根据探测包里的信息得知探测方的地址信 息,并构建响应的数据包发送给探测方,探测方接受到响应包后,可能从数据包中获取响应 方的地址信息,随后便可以建立连接,连接方式有两种:Http、Socket 3 CN 111597053 A 说 明 书 2/5 页 使用Http或Socket维持连接: 双方将会按照约定的时间相互发送心跳包得知对方依然在线,当在一段时间内没 有收到对方的心跳包,则认定对方已经离线。除了发送心跳包之外,还将定时发送计算机的 资源情况,如CPU使用率、内存剩余量、硬盘剩余量等,以方便之后的任务调度。 优选的,所述任务调度器的任务调度分为本机新增任务以及其他计算引擎的新增 任务, 本机新增任务: 当本机新增任务时,计算引擎将统计本机的资源情况如CPU占用率、内存剩余量、 硬盘剩余量,同时拿本机的资源情况与已经建立连接的其他计算引擎进行比较,如果本机 资源情况更加良好,则直接将任务发送到任务计算器进行本地计算;如果本机资源情况不 足,则将选取已经建立连接的其他计算引擎集群中最良好的机器,将任务的计算方式、计算 资源一并发送予它。 其他计算引擎的新增任务: 当新增的任务是来自于其他计算引擎,则直接将任务发送到任务计算器进行本地 计算随后等待计算结果,计算完毕后将计算结果发送到计算结果回收器中进行结算。 所述任务分发器用于任务的分发,当其收到任务调度器的分发请求时,将任务进 行分发,包括任务的计算方法、计算所需的资源,分发时,将在局域网中根据不同的节点的 空闲情况、任务情况挑选一个节点,将任务进行分发。 所述计算结果回收器用户回收计算结果与返还计算结果,当当前完成一项由其他 节点分发下来的任务时,将进行结果的整理与返还,当当前节点接收到其他节点的计算结 果时,将回收该计算结果。 所述任务计算器负责任务的真正运算,当任务调度器判定该任务需要由当前计算 节点计算时,会将计算方法、计算资源发送给任务计算器,任务计算器会进行计算,完成后 将通知计算结果回收器。 优选的,所述任务计算器为Master-N  Worker的结构,Master-N  Worker的结构包 括Master、Worker  One、Worker  Two、Worker  Three和Worker  Four。 优选的,所述Master的输出端分别与Worker  One的输入端、Worker  Two的输入端、 Worker  Three的输入端和Worker  Four的输入端通过数据线连接。 优选的,所述Master、Worker  One、Worker  Two、Worker  Three和Worker  Four均为 进程或线程,由Master进行任务的调度,将计算任务分配给Worker  One、Worker  Two、 Worker  Three和Worker  Four进行计算,即在真正的计算时,每一个计算引擎也是一个并发 计算的计算器。当Worker  One、Worker  Two、Worker  Three和Worker  Four完成任务的计算 时,会将结算结果返还给Master,当当前任务Worker  One、Worker  Two、Worker  Three和 Worker  Four都完成后,Master会将结果进行汇总,最终返还给计算结果回收器。 优选的,所述动力核心计算引擎系统使用的计算机资源主要有CPU、内存和硬盘。 优选的,所述动力核心计算引擎系统使用的网络为局域网。 与现有技术相比,本发明的有益效果是:1.能够进行自适应节点发现无须提前配 置; 2.无须中心数据管理; 4 CN 111597053 A 说 明 书 3/5 页 3.无须按照特定的开发规范即可使用。 附图说明 图1为本发明一种协同运算与自适应分布式的计算引擎的组成示意图; 图2为本发明一种协同运算与自适应分布式的计算引擎任务计算器的组成示意 图。 图中:1、节点探测器;2、任务分发器;3、任务调度器;4、计算结果回收器;5、任务计 算器;6、Master;7、Worker  One;8、Worker  Two;9、Worker  Three;10、Worker  Four。
分享到:
收藏