一种服务器无感知数据分析的并行调度方法及系统
未命名
10-18
阅读:99
评论:0
1.本发明涉及数据分析作业调度技术领域,尤其涉及一种服务器无感知数据分析的并行调度方法及系统。
背景技术:
2.数据分析广泛存在于网络服务和应用中,数据分析作业是数据中心的重要负载。数据分析作业的执行分为多个阶段,每个阶段由多个任务并行执行,不同阶段间可能存在数据依赖。通常,数据分析作业的不同阶段具有不同的资源需求,而传统的以服务器为中心的模式要求用户预先配置一定数量的服务器来执行作业,导致资源浪费或执行效率下降。而服务器无感知计算可以自动部署用户代码、根据用户需求进行资源扩缩容和计费,因此数据分析作业被广泛移植到服务器无感知计算平台上以降低开发难度与运行成本。用户将数据分析作业提交到服务器无感知计算平台,作业调度器为作业中的每个任务分配资源,并以函数的形式执行任务。
3.目前,针对服务器无感知计算的数据分析作业调度器(简称服务器无感知分析调度器)在提高作业执行效率和降低作业运行成本等方面取得一定进展,但绝大部分服务器无感知分析调度器为每个阶段设置固定数量的任务(即采用固定的并行度,并行度又称degree of parallelism, dop)。主流的服务器无感知分析调度器根据阶段输入数据量的大小来决定该阶段的并行度,为输入更多数据的阶段设置更大的并行度。这种基于数据量调整并行度配置的方法提高了执行效率,降低了运行成本,但在服务器无感知计算的模式下具有两个方面的局限性。
4.一方面,仅考虑数据量的并行度配置方法不具备弹性,无法灵活地调整阶段并行度以适应服务器无感知计算模式下资源环境弹性可变的情况。资源环境弹性可变指的是在不同时刻,服务器无感知计算平台的空闲资源是可变的,可用的中央处理器(cpu)和内存资源分布在不同的服务器上。
5.另一方面,仅考虑数据量的并行度配置方法不能准确适配服务器无感知计算分析调度器的优化目标。在服务器无感知计算模式下,用户只需为执行作业过程中占用的实际资源付费,因此用户关心的是自己所提交作业的完成时间(job completion time,jct)和运行成本(cost)。在优化jct时,仅考虑数据量的并行度配置方法忽视了阶段之间的数据依赖,不能达到最优性能;在优化cost时,由于用户为作业占用的cpu和内存付费,而数据量并不能准确反映作业对两种资源的实际占用,仅考虑数据量的并行度配置方法也无法达到最低运行成本。
技术实现要素:
6.有鉴于此,本发明提供一种服务器无感知数据分析的并行调度方法。旨在提高服务器无感知数据分析的并行调度的性能。
7.在本发明实施例的第一方面,提供了一种服务器无感知数据分析的并行调度方
法,应用于数据分析作业调度器,所述方法包括:根据优化目标,确定所述优化目标对应的目标模型;在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
8.可选地,所述根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,包括:步骤s4011:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算时间,边权为两个阶段间的数据传输时间,包括阶段的写数据和阶段的读数据;步骤s4012:按照图g中路径的总权值大小顺序和边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;步骤s4013:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4014:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4013;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,结束步骤执行;步骤s4015:根据所述图g中各个阶段之间的关系和各个阶段各自的运行时间模型,确定每两个阶段之间的最佳并行度比例;步骤s4016:确定所述图g中最大深度是否存在兄弟阶段和父子阶段;步骤s4017:在所述图g中最大深度存在兄弟阶段的情况下,将所述兄弟阶段进行合并,以更新所述图g,并基于所述兄弟阶段的最佳并行度比例和第一算法确定合并获得的阶段的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶段,以及所述图g中最大深度存在父子阶段的情况下,将所述父子阶段对应的两个阶段进行合并,以更新所述图g,并基于所述父子阶段的最佳并行度比例和第二算法确定合并获得的阶段的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶
段和父子阶段的情况下,获得包括合并获得的单个阶段的所述图g,执行步骤s4018;步骤s4018:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和各个合并获得的阶段的运行时间模型中的第一拟合参数,确定未进行合并处理时的图g中各个阶段的并行度数量;步骤s4019:根据所述未进行合并处理时的图g中各个阶段的并行度数量,确定所述未进行合并处理时的图g中各个阶段和各个边的最新权值,以对所述未进行合并处理时的图g中的权值进行更新,以进行权值更新后的所述未进行合并处理时的图g返回步骤s4012进行执行。
9.可选地,所述步骤s4015,包括:根据所述图g,确定每两个阶段之间的关系;在两个阶段之间的关系为兄弟阶段的情况下,根据该两个阶段各自的运行时间模型,通过第一比例关系,确定该两个阶段的最佳并行度比例;在两个阶段之间的关系为父子阶段的情况下,根据该两个阶段各自的运行时间模型,通过第二比例关系,确定该两个阶段的最佳并行度比例。
10.可选地,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系,包括:在所述数据分析作业的数据信息中包括历史运行信息的情况下,通过解析所述历史运行信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;在所述数据分析作业的数据信息中不包括历史运行信息的情况下,通过预设的多个不同的并行度配置,对所述数据分析作业进行多次运行,以获得所述数据分析作业的各个阶段的运行时间与并行度之间的关系。
11.可选地,所述方法还包括:在所述数据分析作业完成新一次运行的情况下,根据所述新一次运行的运行数据,更新所述数据分析作业的各个阶段各自的运行时间模型。
12.可选地,所述方法还包括:接收函数执行模块执行任务的执行结果;在所述执行结果表征存在执行异常的情况下,控制所述函数执行模块终止任务或重新执行任务。
13.可选地,所述方法还包括:在所述目标模型为内存占用模型的情况下,获取数据分析作业中的运行时间数据信息、并行度数据信息、数据处理量数据信息和内存占用信息,确定所述数据分析作业的各个阶段的运行成本与并行度之间的关系;根据所述各个阶段的运行成本与并行度之间的关系,拟合获得所述各个阶段各自的运行成本模型;根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案;根据所述第二并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
14.可选地,所述根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调
度方案,包括:步骤s4021:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算成本,边权为两个阶段间的数据传输的成本,包括阶段的写数据和阶段的读数据;步骤s4022:按照图g中边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;步骤s4023:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4024:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4023;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案,结束步骤执行;步骤s4025:根据所述图g中各个阶段各自的运行成本模型,确定每两个阶段之间的最佳并行度比例;步骤s4026:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和所述每两个阶段之间的最佳并行度比例,确定图g中各个阶段的并行度数量;步骤s4027:根据所述图g中各个阶段的并行度数量,确定所述图g中各个阶段和各个边的最新权值,以对所述图g中的权值进行更新,以进行权值更新后的所述图g返回步骤s4022进行执行。
15.本发明第二方面提供一种服务器无感知数据分析的并行调度系统,所述系统包括:目标模型确定模块,用于根据优化目标,确定所述优化目标对应的目标模型;目标关系确定模块,用于在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;运行时间模型构建模块,用于根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;第一并行调度方案确定模块,用于根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;任务执行模块,用于根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
16.针对在先技术,本发明具备如下优点:本发明实施例提供的一种服务器无感知数据分析的并行调度方法,首先根据优化
目标,确定所述优化目标对应的目标模型;在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。由此,可有效提高服务器无感知数据分析的并行调度的性能。
17.上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
18.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
19.图1为本发明实施例提供的一种服务器无感知数据分析的并行调度方法的流程图;图2为本发明实施例提供的一种服务器无感知数据分析的并行调度方法中对数据分析作业的dag进行赋权的示意图;图3为本发明实施例提供的一种服务器无感知数据分析的并行调度方法中对数据分析作业的图g中的阶段进行合并处理的示意图;图4为本发明实施例提供的一种服务器无感知数据分析的并行调度方法中对数据分析作业的图g中的阶段进行合并处理的另一示意图;图5为本发明实施例提供的一种服务器无感知数据分析的并行调度方法中确定数据分析作业各个阶段的并行度的示意图;图6为本发明实施例提供的一种服务器无感知数据分析的并行调度方法中确定数据分析作业各个阶段的并行度的另一示意图;图7为本发明实施例提供的一种服务器无感知数据分析的并行调度系统的示意图。
具体实施方式
20.下面将参照附图更详细地描述本发明的示例性实施例。
21.图1为本发明实施例提供的一种服务器无感知数据分析的并行调度方法的流程图,如图1所示,该方法应用于数据分析作业调度器,该方法包括:步骤s101:根据优化目标,确定所述优化目标对应的目标模型;步骤s102:在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;步骤s103:根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各
个阶段各自的运行时间模型;步骤s104:根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;步骤s105:根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
22.在本发明的实施例中,数据分析作业的执行包括多个阶段,而每个阶段则由多个任务并行执行,对于同一个阶段的多个并行执行的任务是相同的,也就是一个阶段被分成多个任务并行执行,该多个任务执行的任务内容是相同的,该多个任务的执行所用到的相关资源和时间是相同的。本发明所提供的一种服务器无感知数据分析的并行调度方法应用于数据分析作业调度器,用户向数据分析作业调度器提交数据分析作业。用户指定数据分析作业的优化目标,根据用户指定的优化目标确定相应的目标模型。在用户指定的优化目标为完成时间(job completion time,jct)的情况下,也就是用户关注于自身所提交的数据分析作业的完成时间,希望在数据分析作业的完成时间上尽可能地降低,以提高数据分析作业的完成效率。在用户指定的优化目标为完成时间(job completion time,jct)的情况下,确定该完成时间优化目标对应的目标模型为运行时间模型。完成时间优化目标与运行时间模型为一一对应关系,在用户指定的优化目标为完成时间时,该完成时间优化目标对应的目标模型即为运行时间模型。
23.在确定目标模型为运行时间模型后,此时获取用户所提交的数据分析作业中的运行时间数据信息和并行度数据信息,并对这两种数据信息进行解析,确定到该数据分析作业中各个阶段的运行时间与并行度之间的关系。对于该数据分析作业中所有阶段中的任意一个阶段,通过将确定的属于该任意一个阶段的运行时间与并行度之间的多个关系进行拟合为函数曲线,该函数曲线即为该任意一个阶段的运行时间模型。其中,所述运行时间模型的表达式为。其中,为对应阶段的运行时间;为对应阶段的并行度;和分别为对应阶段的第一拟合参数和第二拟合参数,均为需要进行拟合的参数,分别表示运行时间中随并行度增大而减小的部分和固有不变的部分,如对应阶段中的任务处理时间属于随并行度增大而减小的部分,这是因为并行度增加,对应阶段将被分为的任务数量增加,对应阶段中一个任务执行的数据量将减小,因此任务的处理时间将减小,如对应阶段中的任务启动时间和任务初始化时间属于随并行度增加而固有不变的部分。
24.示例地,用户提交的数据分析作业包括阶段1、阶段2、阶段3,通过对获取的该数据分析作业中的运行时间数据信息和并行度信息进行解析,确定到属于阶段1的运行时间与并行度之间的关系包括运行时间t11对应于并行度d11、运行时间t12对应于并行度d12、运行时间t13对应于并行度d13、
……
、运行时间t1m对应于并行度d1m;对于属于阶段2的运行时间与并行度之间的关系包括运行时间t21对应于并行度d21、运行时间t22对应于并行度d22、运行时间t23对应于并行度d23、
……
、运行时间t2n对应于并行度d2n;对于属于阶段3的运行时间与并行度之间的关系包括运行时间t31对应于并行度d31、运行时间t32对应于并行度d32、运行时间t33对应于并行度d33、
……
、运行时间t3p对应于并行度d3p。通过将运行时间t11对应于并行度d11、运行时间t12对应于并行度d12、运行时间t13对应于并行度d13、
……
、运行时间t1m对应于并行度d1m这些属于阶段1的运行时间与并行度之间的多个
关系进行拟合,将获得阶段1的一个函数曲线,也就是属于该阶段1的运行时间模型;通过将运行时间a21对应于并行度b21、运行时间a22对应于并行度b22、运行时间a23对应于并行度b23、
……
、运行时间a2n对应于并行度b2n这些属于阶段2的运行时间与并行度之间的多个关系进行拟合,将获得该阶段2的一个函数曲线,也就是属于该阶段2的运行时间模型;通过将运行时间t31对应于并行度d31、运行时间t32对应于并行度d32、运行时间t33对应于并行度d33、
……
、运行时间t3p对应于并行度d3p这些属于阶段3的运行时间与并行度之间的多个关系进行拟合,将获得该阶段3的一个函数曲线,也就是属于该阶段3的运行时间模型。
25.在本发明的实施例中,在获得用户提交的数据分析作业的各个阶段各自的运行时间模型后,根据用户提交的数据分析作业的dag(directed acyclic graph 有向无环图)和该数据分析作业的各个阶段各自的运行时间模型和计算集群当前可用的资源,通过数据分析作业调度器确定针对该数据分析作业中各个阶段中各个任务的第一并行调度方案。在数据分析作业调度器确定第一并行调度方案后,将该第一并行调度方案发送至计算集群中的各个服务器。各个服务器通过对接收到的第一并行调度方案进行解析,确定分配到自身服务器进行执行的该数据分析作业中的任务。根据确定的分配到自身服务器进行执行的该数据分析作业中的任务,通过自身服务器的函数执行模型执行分配到自身服务器的该数据分析作业中的任务。
26.本发明实施例提供的一种服务器无感知数据分析的并行调度方法,首先根据优化目标,确定所述优化目标对应的目标模型;在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。由此,可有效提高服务器无感知数据分析的并行调度的性能。
27.在本发明中,所述根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,包括:步骤s4011:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算时间,边权为两个阶段间的数据传输时间,包括阶段的写数据和阶段的读数据;步骤s4012:按照图g中路径的总权值大小顺序和边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;步骤s4013:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4014:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计
算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4013;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,结束步骤执行;步骤s4015:根据所述图g中各个阶段之间的关系和各个阶段各自的运行时间模型,确定每两个阶段之间的最佳并行度比例;步骤s4016:确定所述图g中最大深度是否存在兄弟阶段和父子阶段;步骤s4017:在所述图g中最大深度存在兄弟阶段的情况下,将所述兄弟阶段进行合并,以更新所述图g,并基于所述兄弟阶段的最佳并行度比例和第一算法确定合并获得的阶段的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶段,以及所述图g中最大深度存在父子阶段的情况下,将所述父子阶段对应的两个阶段进行合并,以更新所述图g,并基于所述父子阶段的最佳并行度比例和第二算法确定合并获得的阶段的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶段和父子阶段的情况下,获得包括合并获得的单个阶段的所述图g,执行步骤s4018;步骤s4018:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和各个合并获得的阶段的运行时间模型中的第一拟合参数,确定未进行合并处理时的图g中各个阶段的并行度数量;步骤s4019:根据所述未进行合并处理时的图g中各个阶段的并行度数量,确定所述未进行合并处理时的图g中各个阶段和各个边的最新权值,以对所述未进行合并处理时的图g中的权值进行更新,以进行权值更新后的所述未进行合并处理时的图g返回步骤s4012进行执行。
28.在本发明的实施例中,步骤s104的一种实施方式为:步骤s4011:在通过步骤s103确定到用户提交的数据分析作业的各个阶段各自的运行时间模型后,根据该数据分析作业的各个阶段各自的运行时间模型,确定到该数据分析作业中各个阶段的计算时间和确定到该数据分析作业中阶段与阶段之间的数据传输时间。根据确定的各个阶段的计算时间和阶段与阶段之间的数据传输时间,对该数据分析作业的dag进行赋权,获得图。其中,获得的图g中每个节点表示该数据分析作业的一个阶段,获得的图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算时间,边的边权为该边对应的两个阶段间的数据传输时间,包括阶段的写数据和阶段的读数据。如图2所示,图2示出了数据分析作业的原始dag进行赋权后获得图的一种示例,在图2中阶段1的权值为3,表明阶段1的计算时间为3,阶段1与阶段10构成的边的边权为2,表明阶段1和阶段10之间的数据传输时间为2;在图2中阶段3的权值为2,表明阶段3的计算时间为2,阶段3与阶段9构成的边的边权为5,表明阶段3和阶段9之间的数据传输时间为5。
29.在执行步骤s4011,获得用户提交的数据分析作业对应的图g后,执行步骤s4012:在获得经过赋权后的图g后,对图g中的所有边进行排序。首先以最大深度的阶段开始,直至最小深度的阶段为止组成多条路径。以图2为例,以最大深度的阶段开始,直至最小深度的
阶段为止将得到由阶段1、阶段10、阶段11、阶段13组成的一条路径,以及,将得到由阶段2、阶段10、阶段11、阶段13组成的一条路径,以及,将得到由阶段3、阶段9、阶段11、阶段13组成的一条路径,以及,将得到由阶段4、阶段9、阶段11、阶段13组成的一条路径,以及,将得到由阶段5、阶段8、阶段12、阶段13组成的一条路径,将得到由阶段6、阶段7、阶段12、阶段13组成的一条路径,由此获得6条路径。对于获得的多条路径中的每条路径均计算自身的总权值大小,该总权值包括路径上的阶段的权值和边的边权之和。在获得每条路径各自的总权值后,对该多条路径进行排序,总权值越大排序越靠前。首先针对总权值最大的路径中的边进行排序,排序顺序为边权取值越大的边排序越靠前;然后再针对总权值第二大的路径中的边进行排序,排序顺序同样为边权取值越大的边排序越靠前,直至图g中的所有边均参与排序为止,由此获得排序结果。
30.在本发明的实施例中,由于该排序是为了依次从排序结果中取出边,以确定该边对应的两个阶段是否可被共同放置在计算集群的可用资源上。因此在确定一条边对应的两个阶段无法被放置在计算集群的可用资源上时,无论该一条边在排序结果中出现几次,都无法被共同放置在计算集群的可用资源上。因此本发明为提高调度效率,对于在排序过程中,出现在多条路径中的一条边(如图2中由阶段11和阶段13构成的边、由阶段12和阶段13构成的边、由阶段10和阶段11构成的边等,均会在多条路径中出现),以该一条边在该多条路径中排序最靠前的路径中的排序作为该一条边的最终排序,该一条边将不参与该多条路径中排序靠后的所有路径中的排序。例如,以图2为例,对于由阶段10和阶段11构成的边,将出现在由阶段1、阶段10、阶段11、阶段13组成的路径中,同时将出现在由阶段2、阶段10、阶段11、阶段13组成的路径中,由于由阶段1、阶段10、阶段11、阶段13组成的路径的总权值为25,由阶段2、阶段10、阶段11、阶段13组成的路径的总权值为29,因此对于由阶段10和阶段11构成的边,以在由阶段2、阶段10、阶段11、阶段13组成的路径中的排序作为自身的最终排序结果,在针对由阶段1、阶段10、阶段11、阶段13组成的路径中的边进行排序时,对于由阶段10和阶段11构成的边将不参与排序。应当理解的是,由于在一条边同时出现在多条路径中时,该一条边只参与该多条路径中排序最靠前的一个路径中边的排序,因此该数据分析作业的图g中的每条边将在排序结果中出现一次。
31.在本发明的实施例中,本发明的步骤s104的该实施方式为循环优化调度方案的过程,步骤s4012在每次的循环轮次中都将被执行,而该步骤s4012只有在首次被执行时用到用户提交的数据分析作业对应的进行赋权后的图g进行排序。而在后续的循环轮次中,该步骤s4012所用到的进行排序的图g为上一循环轮次中步骤s4019进行权值更新得到的图g。
32.在执行步骤s4012,获得对应的排序结果后,执行步骤s4013:确定当前循环轮次的排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在计算集群的可用资源上。确定两个阶段是否可被共同放置放在计算集群的可用资源上的判定条件为:计算集群的可用资源中是否存在一个服务器的可用计算资源可满足该两个阶段所需用到的总计算资源。如该两个阶段所需要用到的总计算资源为100,而计算集群的可用资源中能够提供最大计算资源的服务器最多只能提供90的计算资源,则可以确定该两个阶段无法被共同放置在计算集群的可用资源上,也就是该两个阶段无法被共同放置在同一个服务器上。
33.在获得当前循环轮次的排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在计算集群的可用资源的结果后,执行步骤s4014:在该结果表征该排序最靠前
的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上时,将该排序最靠前的一条边的边权置为0,此时用户提交的数据分析作业的图g将发生更新,该更新指的是图g中该排序最靠前的一条边的边权被置为0。然后基于在当前循环轮次的步骤s4014更新后的图g继续执行当前循环轮次的后续步骤s4015。
34.而在该结果表征该排序最靠前的一条边对应的两个阶段无法被共同放置在计算集群的可用资源上时,将该排序最靠前的一条边从排序结果中删除,此时当前循环轮次的排序结果中该排序最靠前的一条边的下一条边将成为当前排序最靠前的一条边,然后以新的排序结果返回步骤s4013,继续确定该新的排序结果中当前排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上。如果还是无法被共同放置,则继续删除该新的排序结果中当前排序最靠前的一条边,以进一步更新该新的排序结果,然后继续以进一步更新后的排序结果返回步骤s4013,继续确定该进一步更新后的排序结果中当前排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上,直至确定到排序结果中一个当前排序最靠前的一条边可被共同放置在计算集群的可用资源为止,此时继续执行当前循环轮次的后续步骤s4015。
35.而如果将排序结果中所有的边都删除后也无法找到一条边对应的两个阶段可以被共同放置在计算集群的可用资源时,表明该数据分析作业的当前图g已经是无法继续进行调度优化的图g,此时直接根据该图g确定针对数据分析作业中各个阶段中各个任务的第一并行调度方案即可。具体地:根据图g中阶段与阶段之间边的边权,将边权取值为0的边对应的两个阶段共同分配到能够容纳下该两个阶段的同一服务器中,同时根据各个阶段的并行度确定各个阶段各自的任务数量,由此获得最终的第一并行调度方案。其中,阶段的并行度数量与阶段的任务数量相同。
36.由于在确定针对数据分析作业中各个阶段中各个任务的第一并行调度方案时是一个循环优化的过程,各个阶段的并行度的确定将在后续的步骤中确定。而在循环优化过程中,出现了再次回到骤步骤s4014的循环轮次,则步骤s4014后续的步骤将至少被执行一次,此时各个阶段各自的并行度将是已知的。在本发明的实施例中,各个阶段各自的并行度确定将在后续步骤进行说明。
37.示例地,当前循环轮次中排序结果中按照排序顺序包括边a、边b、边c、边d,首先确定排序最靠前的边a对应的两个阶段是否可被共同放置在计算集群的可用资源上,在边a对应的两个阶段无法被共同放置在计算集群的可用资源上时,将排序结果中的边a删除。此时排序结果只包括边b、边c、边d,然后继续确定排序最靠前的边b对应的两个阶段是否可被共同放置在计算集群的可用资源上,在边b对应的两个阶段无法被共同放置在计算集群的可用资源上时,将排序结果中的边b删除。此时排序结果只包括边c、边d,然后继续确定排序最靠前的边c对应的两个阶段是否可被共同放置在计算集群的可用资源上,在边c对应的两个阶段无法被共同放置在计算集群的可用资源上时,将排序结果中的边c删除。此时排序结果只包括边d,然后继续确定排序最靠前的边d对应的两个阶段是否可被共同放置在所述计算集群的可用资源上,在边d对应的两个阶段可被共同放置在所述计算集群的可用资源上时,此时继续执行当前循环轮次的后续步骤s4015。
38.在执行完当前循环轮次的步骤s4014后,执行当前循环轮次的步骤s4015:基于当前循环轮次中步骤s4014得到的更新后的图g执行当前循环轮次的步骤s4015。
39.示例地,如图2所示,数据分析作业的图g原本为图2所示进行赋权后得到的图g,在获得排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上,而该两个阶段为图2中的阶段10和阶段11时,此时将阶段10和阶段11构成的边的边权6置为0,由此获得一个更新后的图g,也就是其他部分的节点结构和权值均不变,只有由阶段10和阶段11构成的边的边权6置为0所得到的一个更新后的图g。
40.根据当前循环轮次中步骤s4014得到的更新后的图g中各个阶段之间的关系和各个阶段各自的运行时间模型,可以确定每两个阶段之间的最佳并行度比例。
41.在本发明中,所述步骤s4015,包括:根据所述图g,确定每两个阶段之间的关系;在两个阶段之间的关系为兄弟阶段的情况下,根据该两个阶段各自的运行时间模型,通过第一比例关系,确定该两个阶段的最佳并行度比例;在两个阶段之间的关系为父子阶段的情况下,根据该两个阶段各自的运行时间模型,通过第二比例关系,确定该两个阶段的最佳并行度比例。
42.在本发明的实施例中,步骤s4015的一种实施方式为;根据图g,可以确定到各个阶段之间的关系,包括两个阶段之间为兄弟阶段关系还是父子阶段关系。
43.示例地,以图2为例,对于图2中的阶段1和阶段2,两者属于兄弟阶段;对于图2中的阶段3和阶段4,两者属于兄弟阶段;对于图2中的阶段5和阶段8,两者属于父子阶段;对于图2中的阶段1和阶段12,两者属于兄弟阶段。应当理解的是,此处只是示例性的说明兄弟阶段和父子阶段的具体结构,未将图2中的所有兄弟阶段和父子阶段全部列出。
44.在两个阶段之间的关系为兄弟阶段的情况下,根据该两个阶段各自的运行时间模型,通过第一比例关系,确定该两个阶段的最佳并行度比例,所述第一比例关系为对应两个阶段各自的运行时间模型中的之间的比值。示例地,如图2所示,阶段1和阶段2为兄弟阶段,阶段1与阶段2之间的第一比例关系为,为阶段1的运行时间模型中随并行度增大而减小的部分,为阶段2的运行时间模型中随并行度增大而减小的部分,根据阶段1和阶段2之间的第一比例关系,确定到阶段1与阶段2之间的最佳并行度比例为。
45.在两个阶段之间的关系为父子阶段的情况下,根据该两个阶段各自的运行时间模型,通过第二比例关系,确定该两个阶段的最佳并行度比例,所述第二比例关系为根号下对应两个阶段各自的运行时间模型中的之间的比值。示例地,如图2所示,阶段5和阶段8为兄弟阶段,阶段5与阶段8之间的第二比例关系为,为阶段5的运行时间模型中随并行度增大而减小的部分,为阶段8的运行时间模型中随并行度增大而减小的部分,根据阶段5和阶段8之间的第二比例关系,确定到阶段5与阶段8之间的最佳并行度比例为。
46.在当前循环轮次执行完步骤s4015,获得每两个阶段之间的最佳并行度比例后,执行当前循环轮次的步骤s4016:确定当前循环轮次中步骤s4014得到的更新后的图g中最大深度是否存在兄弟阶段和父子阶段。根据获得的结果,执行当前循环轮次的步骤s4017。
47.在当前循环轮次的步骤s4017中,在当前循环轮次的步骤s4016获得的结果表征该更新后的图g中的最大深度存在兄弟阶段的情况下,将该兄弟阶段进行合并,以对该更新后的图g做进一步更新。同时,基于兄弟阶段的最佳并行度比例和第一算法确定合并获得的阶段的运行时间模型中的第一拟合参数。所述第一算法为,其中,和分别为阶段i的运行时间模型中随并行度增大而减小的部分和阶段j的运行时间模型中随并行度增大
而减小的部分,阶段i和阶段j为兄弟阶段,为阶段i和阶段j合并获得的阶段ij对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段ij的运行时间模型中的第一拟合参数。
48.示例地,以图2为例并继续沿用上述示例,上述示例中是在当前循环轮次中将阶段10和阶段11对应的边的边权置为0后,得到一个更新后的图g,对于该更新后的图g,在当前循环轮次中的步骤s4016中确定到该更新后的图g中的最大深度存在兄弟阶段,分别为阶段1和阶段2组成的兄弟阶段,阶段3和阶段4组成的兄弟阶段。
49.此时将阶段1和阶段2组成的兄弟阶段合并为一个阶段,然后基于阶段1和阶段2的运行时间模型,以及第一算法,确定到合并获得的阶段的运行时间模型中的第一拟合参数为,其中,为阶段1的运行时间模型中随并行度增大而减小的部分,为阶段2的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。同时,将阶段3和阶段4组成的兄弟阶段合并为一个阶段,然后基于阶段3和阶段4的运行时间模型,以及第一算法,确定到合并获得的阶段的运行时间模型中的第一拟合参数为,其中,为阶段3的运行时间模型中随并行度增大而减小的部分,为阶段4的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。由此该更新后的图g将在当前循环轮次的步骤s4017中被进一步更新,该进一步更新后的图g如图3所示。
50.在计算获得最大深度的兄弟阶段进行合并获得的阶段的运行时间模型中的第一拟合参数后,基于该进一步更新后的图g,返回当前循环轮次的步骤s4016继续进行执行:确定该进一步更新后的图g中最大深度是否存在兄弟阶段和父子阶段。根据获得的结果,执行当前循环轮次的步骤s4017。
51.在当前循环轮次的步骤s4017中,在当前循环轮次的步骤s4016获得的结果表征该进一步更新后的图g中的最大深度不存在兄弟阶段,而存在父子阶段的情况下,将该父子阶段进行合并,以对该更进一步更新后的图g再做进一步的更新。同时,基于父子阶段的最佳并行度比例和第二算法确定合并获得的阶段的运行时间模型中的第一拟合参数。所述第二算法为,其中,和分别为阶段x的运行时间模型中随并行度增大而减小的部分和阶段y的运行时间模型中随并行度增大而减小的部分,阶段x和阶段y为父子阶段,为阶段x和阶段y合并获得的阶段xy对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段xy的运行时间模型中的第一拟合参数。
52.示例地,以图3为例并继续沿用上述示例,上述示例中将获得如图3所示的做了进一步更新后的图g,对于该进一步更新后的图g,在当前循环轮次的步骤s4016中确定到该进一步更新后的图g中的最大深度不存在兄弟阶段,而存在父子阶段,分别为阶段12和阶段10组成的兄弟阶段,阶段9和阶段组成的父子阶段,阶段5和阶段8组成的父子阶段,阶段6和阶段7组成的父子阶段。
53.此时将阶段12和阶段10组成的父子阶段合并为一个阶段,然后基于阶段
和阶段10的运行时间模型,以及第二算法,确定到合并获得的阶段的运行时间模型中的第一拟合参数为,其中,为阶段的运行时间模型中随并行度增大而减小的部分,为阶段10的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。基于与上述相同的实施方式,可以计算获得将阶段和阶段9组成的父子阶段合并为阶段时,阶段的,也就是阶段的运行时间模型中的第一拟合参数。同时,将阶段5和阶段8组成的父子阶段合并为一个阶段,然后基于阶段5和阶段8的运行时间模型,以及第二算法,确定到合并获得的阶段的运行时间模型中的第一拟合参数为,其中,为阶段5的运行时间模型中随并行度增大而减小的部分,为阶段8的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。基于与上述相同的实施方式,可以计算获得将阶段6和阶段7组成的父子阶段合并为阶段时,阶段的,也就是阶段的运行时间模型中的第一拟合参数。由此上述进一步更新后的图g将再次被更新,该再次被更新后的图g如图4所示。
54.在计算获得最大深度的父子阶段进行合并获得的阶段的运行时间模型中的第一拟合参数后,基于该再次被更新后的图g,再次返回当前循环轮次的步骤s4016进行执行,直至图g合并为不再存在兄弟阶段以及父子阶段的单个阶段为止,此时执行当前循环轮次的下一步骤s4018。
55.当前循环轮次的步骤s4018:根据计算集群当前可用资源,确定到当前可用的总并行度,该总并行度全部参与到当前循环轮次中被合并为只有单个阶段的图g中的并行度调度。根据获得的总并行度和进行每次合并处理时获得的阶段的运行时间模型中的第一拟合参数,以及当前循环轮次中未进行合并处理时的图g中各个阶段的最佳并行度比例,通过反向推导确定到将总并行度全部分配给未进行合并处理时的图g中各个阶段的最佳并行度分配结果。该分配结果中包括当前循环轮次中未进行合并处理时的图g中各个阶段的最优并行度数量。其中,当前循环轮次中未进行合并处理时的图g表征的是在当前循环轮次中完成步骤s4014的执行时所获得的图g。
56.示例地,以图5为例,该图g中最大深度的阶段和阶段属于兄弟阶段,此时将阶段和阶段组成的兄弟阶段合并为一个阶段,然后基于阶段和阶段的运行时间模型,以及第一算法,确定到合并获得的阶段的运行时间模型中的第一拟合参数为,其中,为阶段的运行时间模型中随并行度增大而减小的部分,为阶段的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。在将图g中的阶段和阶段进行合并获得阶段之后,形成一个新的图g,该新的图g中只包括阶段和阶段,该新的图g中最大深度的阶段与阶段组成父子阶段,因此此时继续将阶段和阶段组成的父子阶段合并为一个阶段,然后基于阶段和阶段的运行时间模型,以及第二算法,确定到合并获得的阶段的
运行时间模型中的第一拟合参数为,其中,为阶段的运行时间模型中随并行度增大而减小的部分,为阶段的运行时间模型中随并行度增大而减小的部分,为合并获得的阶段对应的运行时间模型中随并行度增大而减小的部分,也就是合并获得的阶段的运行时间模型中的第一拟合参数。然后根据计算集群当前可用资源,可以确定到计算集群的当前可用的总并行度,在该示例中以n表示。
57.由于总并行度n已知,同时阶段是由阶段和阶段合并获得的,因此在当前循环轮次中,阶段和阶段的并行度之和与总并行度n相同。而阶段和阶段又组成父子阶段,因此两者之间的最佳并行度比例已知,也就是。而作为用户提交的数据分析作业对应的最初进行赋权获得的图g中原本就存在的阶段的第一拟合参数,在步骤s103中已经计算获得,因此属于已知量。而在当前循环轮次中的步骤s4017中已经基于和计算获得,因此属于已知量。因此,阶段和阶段并行度之和与总并行度n相同,总并行度n已知,阶段和阶段之间的最佳并行度比例已知,由此可计算获得阶段和阶段各自在当前循环轮次中的最优并行度数量。
58.由于在当前循环轮次中的最优并行度数量已经计算获得,而阶段是由阶段和阶段合并获得的,因此在当前循环轮次中,阶段和阶段的并行度之和与阶段的并行度数量相同。同时,阶段和阶段组成兄弟阶段,两者的最佳并行度比例,而和作为用户提交的数据分析作业对应的最初进行赋权获得的图g中原本就存在的阶段的第一拟合参数,在步骤s103中已经计算获得,因此和属于已知量。由此,阶段和阶段并行度之和与阶段的并行度数量相同,阶段的并行度数量已经计算获得,阶段和阶段之间的最佳并行度比例已知,由此可计算获得阶段和阶段各自在当前循环轮次中的最优并行度数量。由此,计算获得在当前循环轮次中未进行合并处理时的图g中原本就存在的各个阶段各自的最优并行度数量。
59.在通过执行当前循环轮次中的步骤s4018,获得当前循环轮次中未进行合并处理时的图g中原本就存在的各个阶段各自的最优并行度数量后,执行当前循环轮次中的步骤s4019:将当前循环轮次中步骤s4018计算获得的未进行合并处理时的图g中各个阶段各自的最优并行度数量,带入各自对应的当前循环轮次中未进行合并处理时的图g中各个阶段各自的运行时间模型进行计算,对于每个阶段均可计算获得一个新的运行时间,以每个阶段各自新的运行时间对当前循环轮次中未进行合并处理时的图g中的各个阶段的权值和各个边的边权进行更新。然后以当前循环轮次进行了权值和边权更新的图g返回步骤s4012进行新一轮的循环,以对阶段的并行度和阶段与阶段之间的共同放置做进一步优化,直至最终的图g中不再存在可以被共同放置在计算集群的可用资源上的两个阶段为止。也就是在新一轮的循环轮次中,执行步骤s4012所用到的图g为该新一轮的循环轮次的上一循环轮次最终得到的图g。
60.在本发明的实施例中,本发明通过对数据分析作业的各个阶段进行并行度配置和阶段共同放置进行联合迭代优化。在每次迭代优化的过程中,先进行两个阶段共同放置的优化,然后在共同放置后,对各个阶段进行并行度的优化,直至最终的迭代循环轮次中,所获得的图g中不再具有可以可被共同放置的两个阶段为止,此时基于当前的图g和计算获得
的各个阶段各自的并行度数量即可获得该数据分析作业对应的最佳调度方案。
61.在本发明中,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系,包括:在所述数据分析作业的数据信息中包括历史运行信息的情况下,通过解析所述历史运行信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;在所述数据分析作业的数据信息中不包括历史运行信息的情况下,通过预设的多个不同的并行度配置,对所述数据分析作业进行多次运行,以获得所述数据分析作业的各个阶段的运行时间与并行度之间的关系。
62.在本发明的实施例中,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系的一种实施方式为:在用户当前所提交的数据分析作业为数据分析作业调度器之前处理过的数据分析作业的情况下,该数据分析作业的数据信息中包括历史运行信息,此时数据分析作业调度器可直接获取用户当前所提交的数据分析作业的数据信息中的历史运行信息,并对获取到的历史运行信息进行解析,获得该数据分析作业的各个阶段的运行时间和并行度之间的关系。而在用户当前所提交的数据分析作业为从未被处理过的数据分析作业的情况下,该数据分析作业的数据信息中将不包括历史运行信息,此时本发明预设多个不同并行度配置,通过数据分析作业调度器控制该数据分析作业以该预设的多个不同并行度配置进行多次执行,以获得该数据分析作业的各个阶段的运行时间与并行度之间的关系。应当理解的数据分析作业的每个阶段各自的运行时间与并行度之间的关系的数量与预设的不同并行度配置的数量相同。
63.在本发明中,所述方法还包括:在所述数据分析作业完成新一次运行的情况下,根据所述新一次运行的运行数据,更新所述数据分析作业的各个阶段各自的运行时间模型。
64.在本发明的实施例中,在相同的数据分析作业被多次提交和执行后,新提交的该数据分析作业在被执行后会产生新的运行数据,基于该获得的新的运行数据,对该数据分析作业中的各个阶段各自的运行时间模型进行更新处理,以保证数据分析作业中的各个阶段各自的运行时间模型处于最新状态。
65.在本发明中,所述方法还包括:接收函数执行模块执行任务的执行结果;在所述执行结果表征存在执行异常的情况下,控制所述函数执行模块终止任务或重新执行任务。
66.在本发明的实施例中,计算集群中的服务器的函数执行模型在任务进行执行,在执行的过程中向数据分析作业调度器的监控模块报告函数执行结果和对应的异常信息,在出现异常时,服务器的函数执行模块辅助该监控模块终止对应任务的执行或重新执行该任务。
67.在本发明中,所述方法还包括:在所述目标模型为内存占用模型的情况下,获取数据分析作业中的运行时间数据信息、并行度数据信息、数据处理量数据信息和内存占用信息,确定所述数据分析作业的各个阶段的运行成本与并行度之间的关系;根据所述各个阶段的运行成本与并行度之间的关系,拟合获得所述各个阶段各自的运行成本模型;根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案;根据所述第二并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
68.在本发明的实施例中,在用户指定的优化目标为运行成本时,确定该运行成本优化目标对应的目标模型为运行成本模型。其中,数据分析作业的运行成本正比于数据分析作业的资源消耗量和运行时间之间的乘积,其中数据分析作业占用的内存大小表示数据分析作业的资源消耗量。
69.在确定目标模型为运行成本模型后,此时获取用户所提交的数据分析作业中的运行时间数据信息、并行度数据信息、数据处理量数据信息和内存占用信息,并对这四种数据信息进行解析,确定到该数据分析作业中各个阶段的运行成本与并行度之间的关系。对于该数据分析作业中所有阶段中的任意一个阶段,通过将确定的属于该任意一个阶段的运行成本与并行度之间的多个关系进行拟合为函数曲线,该函数曲线即为该任意一个阶段的运行成本模型。其中,所述运行成本模型的表达式为。其中,为对应阶段的运行成本,为对应阶段的内存占用量,为对应阶段的运行时间,为对应阶段的数据处理量,为对应阶段中每个任务固有的内存开销,为并行度。因此,。其中,由于固有时间相对于可忽略,所有任务固有的内存开销相对于对应阶段所处理的数据量占用的内存可忽略,因此相对于可被忽略。因此,最终运行成本模型的表达式可表达为,由于为常量,因此各个阶段的运行成本模型的数学形式与各个阶段的运行时间模型类似,其中,表示运行成本模型中需要拟合的第三拟合参数,表示运行成本模型中需要拟合的第四拟合参数。由于数据分析作业总的运行成本是数据分析作业中所有阶段中所有任务的运行成本之和,最小化运行成本cost的问题与上述基于图g进行运行时间最小化的问题类似。
70.在本发明的实施例中,在获得用户提交的数据分析作业的各个阶段各自的运行成本模型后,根据用户提交的数据分析作业的dag(directed acyclic graph 有向无环图)和该数据分析作业的各个阶段各自的运行成本模型和计算集群当前可用的资源,通过数据分析作业调度器确定针对该数据分析作业中各个阶段中各个任务的第二并行调度方案,该第二并行调度方案的调度目的是最小化数据分析作业的运行成本。在数据分析作业调度器确定第二并行调度方案后,将该第二并行调度方案发送至计算集群中的各个服务器。各个服务器通过对接收到的第二并行调度方案进行解析,确定分配到自身服务器进行执行的该数据分析作业中的任务。根据确定的分配到自身服务器进行执行的该数据分析作业中的任务,通过自身服务器的函数执行模型执行分配到自身服务器的该数据分析作业中的任务。
71.在本发明中,所述根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案,包括:步骤s4021:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算成本,边权为两个阶段间的数据传输的成本,包括阶段的写数据和阶段的读数据;步骤s4022:按照图g中边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;
步骤s4023:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4024:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4023;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案,结束步骤执行;步骤s4025:根据所述图g中各个阶段各自的运行成本模型,确定每两个阶段之间的最佳并行度比例;步骤s4026:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和所述每两个阶段之间的最佳并行度比例,确定图g中各个阶段的并行度数量;步骤s4027:根据所述图g中各个阶段的并行度数量,确定所述图g中各个阶段和各个边的最新权值,以对所述图g中的权值进行更新,以进行权值更新后的所述图g返回步骤s4022进行执行。
72.在本发明的实施例中,根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案的一种实施方式与上述根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案的实施方式类似。
73.根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案的一种实施方式,与上述根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案的实施方式的不同之处包括以下两点:第1点,在步骤s4025中,确定数据分析作业中每两个阶段之间的最佳并行度比例所用到的目标模型为运行成本模型,不同于在步骤s4015中,确定数据分析作业中每两个阶段之间的最佳并行度比例所用到的目标模型为运行时间模型。
74.在本发明中,所述步骤s4025,包括:根据所述图g中各个阶段各自的运行成本模型,确定每两个阶段之间的最佳并行度比例。
75.在本发明的实施例中,本发明中的步骤s4025的实施方式为:根据图g中各个阶段各自的运行成本模型,可以确定到每两个阶段之间的最佳并行度比例,图g中任意两个阶段和之间的最佳并行度比例为。
76.第2点,第二并行调度方案的实施方式中可直接根据图g中任意两个阶段之间的最佳并行度比例和根据计算集群当前可用资源确定的总并行度即可计算获得该图g中各个阶段的并行度数量。
77.示例地,以图6为例,该图g中包括阶段、阶段和阶段。通过计算获得的各个阶段的运行成本模型可以确定到任意的每两个阶段之间的最佳并行度比例,分别为
、和。然后根据计算集群当前可用资源,可以确定到计算集群的当前可用的总并行度,在该示例中以n表示。
78.由于总并行度n已知,同时图g中包括的所有阶段为阶段、阶段和阶段,因此。其中,n属于已知量,、和为各个对应阶段中的运行成本模型的第三拟合参数,已经在上述步骤中计算获得,因此也属于已知量,在、和属于已知量的情况下,图g中任意的每两个阶段之间的最佳并行度比例之间也属于已知量,因此基于公式、、和可以计算获得在当前循环轮次中各个阶段各自的最优并行度数量。由此,计算获得在当前循环轮次中未进行合并处理时的图g中原本就存在的各个阶段各自的最优并行度数量。
79.第3点,在通过执行当前循环轮次中的步骤s4026,获得当前循环轮次中未进行合并处理时的图g中原本就存在的各个阶段各自的最优并行度数量后,执行当前循环轮次中的步骤s4027:将当前循环轮次中步骤s4026计算获得的未进行合并处理时的图g中各个阶段各自的最优并行度数量,带入各自对应的当前循环轮次中未进行合并处理时的图g中各个阶段各自的运行成本模型进行计算,对于每个阶段均可计算获得一个新的运行成本,以每个阶段各自新的运行成本对当前循环轮次中未进行合并处理时的图g中的各个阶段的权值和各个边的边权进行更新。然后以当前循环轮次进行了权值和边权更新的图g返回步骤s4022进行新一轮的循环,以对阶段的并行度和阶段与阶段之间的共同放置做进一步优化,直至最终的图g中不再存在可以被共同放置在计算集群的可用资源上的两个阶段为止。也就是在新一轮的循环轮次中,执行步骤s4022所用到的图g为该新一轮的循环轮次的上一循环轮次最终得到的图g。
80.本发明所提供的一种服务器无感知数据分析的弹性并行调度方法,能够在自动配置数据分析作业各阶段并行度的同时,根据资源状况优化各阶段的任务放置,大幅减少数据传输的时间和开销,从而为用户降低作业完成时间和运行成本。
81.本发明第二方面提供一种服务器无感知数据分析的弹性并行调度系统,如图7所示,所述系统700包括:目标模型确定模块701,用于根据优化目标,确定所述优化目标对应的目标模型;目标关系确定模块702,用于在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;运行时间模型构建模块703,用于根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;第一并行调度方案确定模块704,用于根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;任务执行模块705,用于根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
82.可选地,所述第一并行调度方案确定模块704,包括:
构建图模块,用于通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算时间,边权为两个阶段间的数据传输时间,包括阶段的写数据和阶段的读数据;排序模块,用于按照图g中路径的总权值大小顺序和边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;共同放置确定模块,用于确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;边权更新模块,用于在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;以及,用于在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,控制所述共同放置确定模块执行;以及,用于在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;最佳并行度比例确定模块,用于根据所述图g中各个阶段之间的关系和各个阶段各自的运行时间模型,确定每两个阶段之间的最佳并行度比例;阶段关系确定模块,用于确定所述图g中最大深度是否存在兄弟阶段和父子阶段;阶段合并模块,用于在所述图g中最大深度存在兄弟阶段的情况下,将所述兄弟阶段进行合并,以更新所述图g,并基于所述兄弟阶段的最佳并行度比例和第一算法确定合并获得的阶段的运行时间模型中的第一拟合参数,控制所述阶段关系确定模块执行;以及,用于在所述图g中最大深度无兄弟阶段,以及所述图g中最大深度存在父子阶段的情况下,将所述父子阶段对应的两个阶段进行合并,以更新所述图g,并基于所述父子阶段的最佳并行度比例和第二算法确定合并获得的阶段的运行时间模型中的第一拟合参数,控制所述阶段关系确定模块执行;以及,用于在所述图g中最大深度无兄弟阶段和父子阶段的情况下,获得包括合并获得的单个阶段的所述图g;并行度数量确定模块,用于根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和各个合并获得的阶段的运行时间模型中的第一拟合参数,确定未进行合并处理时的图g中各个阶段的并行度数量;权值更新模块,用于根据所述未进行合并处理时的图g中各个阶段的并行度数量,确定所述未进行合并处理时的图g中各个阶段和各个边的最新权值,以对所述未进行合并处理时的图g中的权值进行更新,基于进行权值更新后的所述未进行合并处理时的图g,控制所述排序模块进行执行。
83.可选地,所述最佳并行度比例确定模块,包括:第一阶段关系确定模块,用于根据所述图g,确定每两个阶段之间的关系;第一最佳并行度比例确定模块,用于在两个阶段之间的关系为兄弟阶段的情况下,根据该两个阶段各自的运行时间模型,通过第一比例关系,确定该两个阶段的最佳并行度比例;
第二最佳并行度比例确定模块,用于在两个阶段之间的关系为父子阶段的情况下,根据该两个阶段各自的运行时间模型,通过第二比例关系,确定该两个阶段的最佳并行度比例。
84.可选地,所述目标关系确定模块702,包括:第一目标关系确定模块,用于在所述数据分析作业的数据信息中包括历史运行信息的情况下,通过解析所述历史运行信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;第二目标关系确定模块,用于在所述数据分析作业的数据信息中不包括历史运行信息的情况下,通过预设的多个不同的并行度配置,对所述数据分析作业进行多次运行,以获得所述数据分析作业的各个阶段的运行时间与并行度之间的关系。
85.可选地,所述系统还包括:运行时间模型更新模块,用于在所述数据分析作业完成新一次运行的情况下,根据所述新一次运行的运行数据,更新所述数据分析作业的各个阶段各自的运行时间模型。
86.可选地,所述系统还包括:执行结果接收模块,用于接收函数执行模块执行任务的执行结果;监控子模块,用于在所述执行结果表征存在执行异常的情况下,控制所述函数执行模块终止任务或重新执行任务。
87.可选地,所述系统还包括:第三目标关系确定模块,用于在所述目标模型为内存占用模型的情况下,获取数据分析作业中的运行时间数据信息、并行度数据信息、数据处理量数据信息和内存占用信息,确定所述数据分析作业的各个阶段的运行成本与并行度之间的关系;运行成本模型构建模块,用于根据所述各个阶段的运行成本与并行度之间的关系,拟合获得所述各个阶段各自的运行成本模型;第二并行调度方案确定模块,用于根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案;第一任务执行模块,用于根据所述第二并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
88.可选地,所述第二并行调度方案确定模块,包括:第一构建图模块,用于通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算成本,边权为两个阶段间的数据传输的成本,包括阶段的写数据和阶段的读数据;第一排序模块,用于按照图g中边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;第一共同放置确定模块,用于确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;第一边权更新模块,用于在所述排序最靠前的一条边对应的两个阶段可被共同放
置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;以及,用于在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,控制所述共同放置确定模块执行;以及,用于在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案;第三最佳并行度比例确定模块,用于根据所述图g中各个阶段各自的运行成本模型,确定每两个阶段之间的最佳并行度比例;第一并行度数量确定模块,用于根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和所述每两个阶段之间的最佳并行度比例,确定图g中各个阶段的并行度数量;第一权值更新模块,用于根据所述图g中各个阶段的并行度数量,确定所述图g中各个阶段和各个边的最新权值,以对所述图g中的权值进行更新,基于进行权值更新后的所述未进行合并处理时的图g,控制所述第一排序模块进行执行。
89.在本发明的实施例中,本发明所提供的一种服务器无感知数据分析的并行调度系统主要包括三部分,分别为数据分析作业调度器、计算集群和存储集群。数据分析作业调度模块又分为作业分析模块、弹性并行调度模块和监控模块。作业模块用于对数据分析作业的各个阶段的相关运行数据信息进行分析,并建立各个阶段各自的目标模型。因此,上述的目标模型确定模块、目标关系确定模块、运行时间模型构建模块、运行时间模型更新模块、第三目标关系确定模块、运行成本模型构建模块均属于作业分析模块。弹性并行调度模块用于根据作业分析模块建立的目标模型以及数据分析作业的dag以及计算集群当前可用资源,制定并行调度方案。因此,上述第一并行调度方案确定模块、第二并行调度方案确定模块均属于弹性并行调度模块。监控模块用于监控函数执行模块报告的每台服务器上的可用资源,包括空闲cpu和内存等。此外,监控模块会跟踪数据分析作业中每个任务对应的函数的执行情况,通过与函数执行模块的通信,来获取任务状态、执行结果、执行时间、运行成本等信息,并处理异常事件。当发生异常时,监控模块会通知函数执行模块终止异常任务,并重新执行该任务。因此,上述的执行结果接收模块和监控子模块均属于监控模块。
90.在本发明的实施例中,计算集群包含多台服务器,每台服务器上的函数执行模块负责根据数据分析作业调度器的调度方法执行数据分析作业中的任务,同时向数据分析作业调度器的监控模块报告任务所对应函数的执行情况。当执行过程发生异常时,函数执行模块向调度器的监控模块报告异常信息,并辅助处理异常。同一台服务器上的函数间可以通过共享内存进行用时近似为零的高速数据共享,不同服务器上的函数间则通过远程的存储集群传输数据。因此,上述任务执行模块、第一任务执行模块均属于服务器中的函数执行模块。存储集群向计算集群提供对象存储的语义,计算集群的服务器可通过网络访问存储集群并进行数据读写。存储集群负责为计算集群中不同服务器上的函数提供数据共享,位于不同服务器上的函数,先后将需要传输的数据写到存储集群和读存储集群,实现数据共享。
91.本发明通过利用开源的tpc-ds数据分析基准框架对本发明提供的一种服务器无感知数据分析的并行调度系统进行了实验,测试了四条sql数据库的查询作业,主要从作业
完成时间、运行成本和调度时间等方面进行了性能评估。结果表明本发明提供的一种服务器无感知数据分析的并行调度系统相比于现有的基线方法能够将数据分析作业的完成时间降低1.26-2.5倍,减少运行成本1.09-1.83倍,且调度时间可忽略不计。
92.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solid state disk (ssd))等。
93.需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
94.本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
95.以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
技术特征:
1.一种服务器无感知数据分析的并行调度方法,其特征在于,应用于数据分析作业调度器,所述方法包括:根据优化目标,确定所述优化目标对应的目标模型;在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案;根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。2.根据权利要求1所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,包括:步骤s4011:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算时间,边权为两个阶段间的数据传输时间,包括阶段的写数据和阶段的读数据;步骤s4012:按照图g中路径的总权值大小顺序和边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;步骤s4013:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4014:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4013;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第一并行调度方案,结束步骤执行;步骤s4015:根据所述图g中各个阶段之间的关系和各个阶段各自的运行时间模型,确定每两个阶段之间的最佳并行度比例;步骤s4016:确定所述图g中最大深度是否存在兄弟阶段和父子阶段;步骤s4017:在所述图g中最大深度存在兄弟阶段的情况下,将所述兄弟阶段进行合并,以更新所述图g,并基于所述兄弟阶段的最佳并行度比例和第一算法确定合并获得的阶段的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶段,以及所述图g中最大深度存在父子阶段的情况下,将所述父子阶段对应的两个阶段进行合并,以更新所述图g,并基于所述父子阶段的最佳并行度比例和第二算法确定合并获得的阶段
的运行时间模型中的第一拟合参数,返回步骤s4016;在所述图g中最大深度无兄弟阶段和父子阶段的情况下,获得包括合并获得的单个阶段的所述图g,执行步骤s4018;步骤s4018:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和各个合并获得的阶段的运行时间模型中的第一拟合参数,确定未进行合并处理时的图g中各个阶段的并行度数量;步骤s4019:根据所述未进行合并处理时的图g中各个阶段的并行度数量,确定所述未进行合并处理时的图g中各个阶段和各个边的最新权值,以对所述未进行合并处理时的图g中的权值进行更新,以进行权值更新后的所述未进行合并处理时的图g返回步骤s4012进行执行。3.根据权利要求2所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述步骤s4015,包括:根据所述图g,确定每两个阶段之间的关系;在两个阶段之间的关系为兄弟阶段的情况下,根据该两个阶段各自的运行时间模型,通过第一比例关系,确定该两个阶段的最佳并行度比例;在两个阶段之间的关系为父子阶段的情况下,根据该两个阶段各自的运行时间模型,通过第二比例关系,确定该两个阶段的最佳并行度比例。4.根据权利要求1所述的一种服务器无感知数据分析的并行调度方法,其特征在于,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系,包括:在所述数据分析作业的数据信息中包括历史运行信息的情况下,通过解析所述历史运行信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;在所述数据分析作业的数据信息中不包括历史运行信息的情况下,通过预设的多个不同的并行度配置,对所述数据分析作业进行多次运行,以获得所述数据分析作业的各个阶段的运行时间与并行度之间的关系。5.根据权利要求4所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述方法还包括:在所述数据分析作业完成新一次运行的情况下,根据所述新一次运行的运行数据,更新所述数据分析作业的各个阶段各自的运行时间模型。6.根据权利要求1所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述方法还包括:接收函数执行模块执行任务的执行结果;在所述执行结果表征存在执行异常的情况下,控制所述函数执行模块终止任务或重新执行任务。7.根据权利要求1所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述方法还包括:在所述目标模型为内存占用模型的情况下,获取数据分析作业中的运行时间数据信息、并行度数据信息、数据处理量数据信息和内存占用信息,确定所述数据分析作业的各个阶段的运行成本与并行度之间的关系;根据所述各个阶段的运行成本与并行度之间的关系,拟合获得所述各个阶段各自的运行成本模型;
根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案;根据所述第二并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。8.根据权利要求7所述的一种服务器无感知数据分析的并行调度方法,其特征在于,所述根据所述数据分析作业的dag、所述各个阶段各自的运行成本模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案,包括:步骤s4021:通过对所述数据分析作业的dag进行赋权,获得图;其中,所述图g中每个节点表示所述数据分析作业的一个阶段,所述图g中每条边表示阶段读阶段产生的数据,节点的权值表示该节点对应的阶段的计算成本,边权为两个阶段间的数据传输的成本,包括阶段的写数据和阶段的读数据;步骤s4022:按照图g中边的权值大小顺序,对所述图g中的所有边进行排序,获得排序结果;步骤s4023:确定所述排序结果中排序最靠前的一条边对应的两个阶段是否可被共同放置在所述计算集群的可用资源上;步骤s4024:在所述排序最靠前的一条边对应的两个阶段可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边的边权置为0,以更新所述图g;在所述排序最靠前的一条边对应的两个阶段不可被共同放置在所述计算集群的可用资源上的情况下,将所述排序最靠前的一条边从所述排序结果中删除,以更新所述排序结果,返回步骤s4023;在所述排序结果中无可被共同放置在所述计算集群的可用资源上的情况下,根据所述图g,确定针对所述数据分析作业中各个阶段中各个任务的第二并行调度方案,结束步骤执行;步骤s4025:根据所述图g中各个阶段各自的运行成本模型,确定每两个阶段之间的最佳并行度比例;步骤s4026:根据计算集群当前可用资源,确定总并行度,以及,根据所述总并行度和所述每两个阶段之间的最佳并行度比例,确定图g中各个阶段的并行度数量;步骤s4027:根据所述图g中各个阶段的并行度数量,确定所述图g中各个阶段和各个边的最新权值,以对所述图g中的权值进行更新,以进行权值更新后的所述图g返回步骤s4022进行执行。9.一种服务器无感知数据分析的弹性并行调度系统,其特征在于,所述系统包括:目标模型确定模块,用于根据优化目标,确定所述优化目标对应的目标模型;目标关系确定模块,用于在所述目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定所述数据分析作业的各个阶段的运行时间与并行度之间的关系;运行时间模型构建模块,用于根据所述各个阶段的运行时间与并行度之间的关系,拟合获得所述各个阶段各自的运行时间模型;第一并行调度方案确定模块,用于根据所述数据分析作业的dag、所述各个阶段各自的运行时间模型、计算集群当前可用资源,确定针对所述数据分析作业中各个阶段中各个任
务的第一并行调度方案;任务执行模块,用于根据所述第一并行调度方案,控制所述计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的所述数据分析作业中的任务。
技术总结
本发明提供一种服务器无感知数据分析的并行调度方法及系统,方法包括:根据优化目标,确定优化目标对应的目标模型;在目标模型为运行时间模型的情况下,获取数据分析作业中的运行时间数据信息和并行度数据信息,确定数据分析作业的各个阶段的运行时间与并行度之间的关系;根据各个阶段的运行时间与并行度之间的关系,拟合获得各个阶段各自的运行时间模型;根据数据分析作业的DAG、各个阶段各自的运行时间模型、计算集群当前可用资源,确定第一并行调度方案;根据第一并行调度方案,控制计算集群中各个服务器上的函数执行模块执行分配到自身所在服务器上的数据分析作业中的任务。旨在提高服务器无感知数据分析的并行调度的性能。性能。性能。
技术研发人员:金鑫 刘譞哲 金超
受保护的技术使用者:北京大学
技术研发日:2023.09.04
技术公布日:2023/10/11
版权声明
本文仅代表作者观点,不代表航空之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)
飞行汽车 https://www.autovtol.com/
