分布式预测的方法、装置、系统、电子设备及存储介质制造方法及图纸

技术编号:24205525 阅读:17 留言:0更新日期:2020-05-20 14:29
本公开实施例涉及一种分布式预测的方法、装置、系统、电子设备及存储介质。其中,分布式预测的方法应用于第一节点,具体包括:获取预测任务对应的输入数据;分片输入数据,得到多个分片数据;基于多个分片数据,将预测任务拆分为多个子任务;分配子任务给至少一个计算节点;其中,第一节点和计算节点均部署有Dask框架;计算节点创建有容器,容器中设置有预先训练的模型,且模型基于Dask框架执行分配的子任务,基于分片数据进行预测得到预测结果。本公开实施例基于Dask框架构建Dask+容器的分布式预测方案,通过对数据进行分片,将数据处理过程分为多个子任务,进而将不同子任务分配到不同计算节点进行分布式计算,实现易用且更轻量级的大数据处理。

Distributed prediction methods, devices, systems, electronic devices and storage media

【技术实现步骤摘要】
分布式预测的方法、装置、系统、电子设备及存储介质
本公开实施例涉及大数据
,具体涉及一种分布式预测的方法、装置、系统、电子设备及非暂态计算机可读存储介质。
技术介绍
大数据是一种超出了传统数据库软件工具能力范围的数据集合,具有四个特征:海量的数据规模、快速的数据流转、多样的数据类型和价值密度低。通常来讲,大数据无法用单台的计算机进行处理,须采用分布式计算架构。目前,大数据处理框架多采用Spark(一种用于大规模数据处理的计算引擎)、Hadoop(一种分布式处理基础框架)。在传统的大数据场景下,通常基于Spark+Hadoop构建分布式计算存储集群。但是搭建Spark+Hadoop集群是一个较大工程,复杂度较高,对于一些公司、实验室或个人,期望基于简易的分布式环境来测试机器学习或深度学习模型,也有部分公司、实验室或个人基于自身业务构建分布式调度方案,但通常需要从底层进行编写,导致易用性及普适性相对较弱。为此,亟需设计更轻量级的、且接近于Spark+Hadoop集群处理的分布式方案。上述对问题的发现过程的描述,仅用于辅助理解本公开的技术方案,并不代表承认上述内容是现有技术。
技术实现思路
为了解决现有技术存在的至少一个问题,本公开的至少一个实施例提供了一种分布式预测的方法、装置、系统、电子设备及非暂态计算机可读存储介质。第一方面,本公开实施例提供一种分布式预测的方法,应用于第一节点,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架执行所述方法,所述方法包括:获取预测任务对应的输入数据;分片所述输入数据,得到多个分片数据;基于所述多个分片数据,将所述预测任务拆分为多个子任务,其中,每个分片数据对应一个子任务;分配所述分片数据对应的子任务给至少一个计算节点;其中,所述计算节点中部署有所述Dask框架且创建有容器;所述容器中设置有预先训练的模型,且所述模型基于所述Dask框架执行分配的分片数据对应的子任务,基于所述分片数据进行预测得到预测结果。在一些实施例中,在所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:获取并存储合并结果;其中,所述合并结果为不同计算节点的子任务预测结果的合并结果。在一些实施例中,所述基于所述多个分片数据,将所述预测任务拆分为多个子任务包括:基于所述预先训练的模型,构建每个分片数据对应的子任务;基于每个分片数据对应的子任务,构建任务图;其中,所述任务图中设置有每个分片数据对应的子任务的处理方式;所述分配所述分片数据对应的子任务给至少一个计算节点包括:基于所述任务图,分配所述分片数据对应的子任务给至少一个计算节点,且分配的子任务中携带有所述子任务的处理方式。在一些实施例中,所述任务图中还包括:每个分片数据对应的子任务之间的依赖关系。在一些实施例中,所述任务图中还包括:用于合并每个分片数据对应的子任务预测结果的子任务以及用于存储合并结果的子任务。在一些实施例中,所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:若任一计算节点的子任务处理失败,则记录失败的子任务,并将失败的子任务重新分配至可运行的计算节点。在一些实施例中,所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:记录已完成的子任务,基于记录的已完成的子任务,确定待完成的子任务,并将所述待完成的子任务分配给至少一个计算节点。在一些实施例中,所述存储合并结果包括:将所述合并结果保存至对象存储系统。在一些实施例中,所述方法还包括:将所述第一节点的运行中间状态记录在Redis数据库中。在一些实施例中,所述第一节点和所述计算节点为POD节点;在所述获取预测任务对应的输入数据前,所述方法还包括:获取所述第一节点对应的Dask镜像文件;基于所述Dask镜像文件,在所述第一节点中,部署所述Dask框架。第二方面,本公开实施例还提供一种分布式预测的方法,应用于计算节点,所述计算节点中部署有Dask框架且创建有容器,所述容器中设置有预先训练的模型,所述计算节点基于所述Dask框架执行所述方法,所述方法包括:接收第一节点分配的分片数据对应的子任务;其中,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架,获取预测任务对应的输入数据,并分片所述输入数据得到多个分片数据,基于所述多个分片数据将所述预测任务拆分为多个子任务,并分配所述分片数据对应的子任务给至少一个计算节点;基于所述Dask框架通过所述模型执行分配的分片数据对应的子任务,基于所述分片数据进行预测得到预测结果。在一些实施例中,所述分配的分片数据对应的子任务中携带有所述子任务的处理方式;所述通过所述模型执行分配的分片数据对应的子任务包括:基于所述子任务的处理方式,通过所述模型执行分配的分片数据对应的子任务。在一些实施例中,所述子任务的处理方式包括:所述分片数据的数据地址和所述子任务的预测结果的存储地址;所述基于所述子任务的处理方式,通过所述模型执行分配的分片数据对应的子任务包括:基于所述分片数据的数据地址,读取所述分片数据;加载所述模型,通过所述模型基于所述分片数据进行预测;基于所述预测结果的存储地址,存储所述模型的预测结果。在一些实施例中,所述预测结果存储在对象存储系统。在一些实施例中,所述方法还包括:将所述计算节点的运行中间状态记录在Redis数据库中。在一些实施例中,所述方法还包括:当所述子任务执行完成,向所述第一节点反馈所述子任务执行完成。第三方面,本公开实施例还提供一种分布式预测的装置,应用于第一节点,所述第一节点中部署有Dask框架,所述装置包括:获取单元,用于获取预测任务对应的输入数据;分片单元,用于分片所述输入数据,得到多个分片数据;拆分单元,用于基于所述多个分片数据,将所述预测任务拆分为多个子任务,其中,每个分片数据对应一个子任务;分配单元,用于分配所述分片数据对应的子任务给至少一个计算节点;其中,所述计算节点中部署有所述Dask框架且创建有容器;所述容器中设置有预先训练的模型,且所述模型基于所述Dask框架执行分配的分片数据对应的子任务,基于所述分片数据进行预测得到预测结果。第四方面,本公开实施例还提供一种分布式预测的装置,应用于计算节点,所述计算节点中部署有Dask框架且创建有容器,所述容器中设置有预先训练的模型,所述装置包括:接收单元,用于接收第一节点分配的分片数据对应的子任务;其中,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架,获取预测任务对应的输入数据,并分片所述输入数据得到多个分片数据,基于所述多个分片数据将所述预测任务拆分为多个子任务,并分配所述分片数据对应的子任务给至本文档来自技高网...

【技术保护点】
1.一种分布式预测的方法,其特征在于,应用于第一节点,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架执行所述方法,所述方法包括:/n获取预测任务对应的输入数据;/n分片所述输入数据,得到多个分片数据;/n基于所述多个分片数据,将所述预测任务拆分为多个子任务,其中,每个分片数据对应一个子任务;/n分配所述分片数据对应的子任务给至少一个计算节点;其中,所述计算节点中部署有所述Dask框架且创建有容器;所述容器中设置有预先训练的模型,且所述模型基于所述Dask框架执行分配的分片数据对应的子任务,基于所述分片数据进行预测得到预测结果。/n

【技术特征摘要】
1.一种分布式预测的方法,其特征在于,应用于第一节点,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架执行所述方法,所述方法包括:
获取预测任务对应的输入数据;
分片所述输入数据,得到多个分片数据;
基于所述多个分片数据,将所述预测任务拆分为多个子任务,其中,每个分片数据对应一个子任务;
分配所述分片数据对应的子任务给至少一个计算节点;其中,所述计算节点中部署有所述Dask框架且创建有容器;所述容器中设置有预先训练的模型,且所述模型基于所述Dask框架执行分配的分片数据对应的子任务,基于所述分片数据进行预测得到预测结果。


2.根据权利要求1所述的方法,其特征在于,在所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:
获取并存储合并结果;其中,所述合并结果为不同计算节点的子任务预测结果的合并结果。


3.根据权利要求1所述的方法,其特征在于,所述基于所述多个分片数据,将所述预测任务拆分为多个子任务包括:
基于所述预先训练的模型,构建每个分片数据对应的子任务;
基于每个分片数据对应的子任务,构建任务图;其中,所述任务图中设置有每个分片数据对应的子任务的处理方式;
所述分配所述分片数据对应的子任务给至少一个计算节点包括:
基于所述任务图,分配所述分片数据对应的子任务给至少一个计算节点,且分配的子任务中携带有所述子任务的处理方式。


4.根据权利要求3所述的方法,其特征在于,所述任务图中还包括:每个分片数据对应的子任务之间的依赖关系。


5.根据权利要求3所述的方法,其特征在于,所述任务图中还包括:用于合并每个分片数据对应的子任务预测结果的子任务以及用于存储合并结果的子任务。


6.根据权利要求1所述的方法,其特征在于,所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:
若任一计算节点的子任务处理失败,则记录失败的子任务,并将失败的子任务重新分配至可运行的计算节点。


7.根据权利要求1所述的方法,其特征在于,所述分配所述分片数据对应的子任务给至少一个计算节点后,所述方法还包括:
记录已完成的子任务,基于记录的已完成的子任务,确定待完成的子任务,并将所述待完成的子任务分配给至少一个计算节点。


8.根据权利要求2所述的方法,其特征在于,所述存储合并结果包括:将所述合并结果保存至对象存储系统。


9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第一节点的运行中间状态记录在Redis数据库中。


10.根据权利要求1至9任一项所述的方法,其特征在于,所述第一节点和所述计算节点为Pod节点;
在所述获取预测任务对应的输入数据前,所述方法还包括:
获取所述第一节点对应的Dask镜像文件;
基于所述Dask镜像文件,在所述第一节点中,部署所述Dask框架。


11.一种分布式预测的方法,其特征在于,应用于计算节点,所述计算节点中部署有Dask框架且创建有容器,所述容器中设置有预先训练的模型,所述计算节点基于所述Dask框架执行所述方法,所述方法包括:
接收第一节点分配的分片数据对应的子任务;其中,所述第一节点中部署有Dask框架,所述第一节点基于所述Dask框架,获取预测任务对应的输入数据,并分片所述输入数据得到多个分片数据,基于所述多个分片数据将所述预测任务拆分为多个子任务,并分配所述分片数据对应的子任务给至少一个计算节点;<...

【专利技术属性】
技术研发人员:陈杰倪煜
申请(专利权)人:北京金山云网络技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1