确定目标数据分析应用的性能预测模型的方法及装置的制造方法
【技术领域】
[0001]本发明涉及数据分析应用,更具体地,涉及确定数据分析应用的性能预测模型的方法及装置。
【背景技术】
[0002]通常,数据分析应用是指以数据为对象,对数据进行分析处理的应用。数据分析应用,尤其是大数据业务的分析应用,日渐成为诸如云计算系统的分布式系统下的主要应用。Hadoop,作为目前普遍流行的大数据平台,是能够对大量数据进行分布式处理的分布式系统基础架构。在Hadoop上能够开发和运行处理大数据的各种应用,例如,MapReduce应用。MapReduce是可用于大规模数据的并行运算的软件架构,其可用于实现大数据的数据分析应用。
[0003]为了预测数据分析应用的执行,建立数据分析应用的性能预测模型是基本且重要的。数据分析应用的性能预测模型是用于预测数据分析应用的诸如执行一次数据分析应用所需的时间、处理速度等执行性能的模型。例如,以Hadoop上的MapReduce为例,用于数据分析应用的性能预测模型的预测因子可以是Hadoop平台的资源分配,例如底层虚拟机的类型、所构建的集群的大小等,也可以是平台的配置,例如用于特定作业的块大小、化简计算执行单元(reducer)的个数等。性能预测模型的目标是终端用户感兴趣的度量,例如,数据处理的时长和需要花费的成本等。
[0004]在现有技术中有许多用于建立这样的性能预测模型的方法。一类方法是可被称为“白盒”建模方法,其通过仔细研究数据分析应用的内部逻辑来建立用于该数据分析应用的性能预测模型。然而,这种方法通常很复杂,因为对数据分析应用的性能的影响因素来自该数据分析应用的建立的整个软件和硬件栈,并且这些因素彼此相互影响。例如,在MapReduce应用中,作业的调度影响该作业的性能,优化的调度又取决于集群中虚拟CPU核的数量。建立反映这些动态和依赖关系的模型需要复杂的系统解析。
[0005]另一类方法是使用机器学习技术以建立回归模型的“黑盒”建模方法。虽然该建模方法不需要解析数据分析应用的架构和内在机理,但该方法需要收集该数据分析应用的大量已有性能数据以便学习。由于数据分析应用的性能的影响因素来自组成该数据分析应用的整个软件与硬件栈,因此,该性能回归应当在多维空间中执行。为了获得准确的性能预测模型,需要收集数据分析应用的较大数量并具有多样性的训练数据。为了收集这些训练数据,通常需要对数据分析应用进行长时间的监控和特定的基准测试(benchmark)。因此,使用该方法建立数据分析应用的性能预测模型需要花费很长的时间,显然,这大大降低了在快速发展的云服务环境下数据分析应用的时间价值比。
[0006]因此,如何快速而准确地确定用于数据分析应用的性能预测模型是需要解决的问题。
【发明内容】
[0007]本发明的实施例提供了一种确定目标数据分析应用的性能预测模型的方法及装置。
[0008]根据本发明的一个方面,提供了一种确定目标数据分析应用的性能预测模型的方法,其包括:在已有数据分析应用中确定与所述目标数据分析应用相似的至少一个参考数据分析应用;获得所述目标数据分析应用的配置-性能数据对,其中所述配置-性能数据对包括所述目标数据分析应用的自身运行环境的配置数据和所述目标数据分析应用在所述自身运行环境下运行时的性能数据;以及基于所述目标数据分析应用的配置-性能数据对和所述至少一个参考数据分析应用的配置-性能数据对,确定所述目标数据分析应用的性能预测模型。
[0009]根据本发明的另一个方面,提供了一种获取目标数据分析应用的性能预测模型的装置,其包括:参考数据分析应用确定模块,其被配置为在已有数据分析应用中确定与所述目标数据分析应用相似的至少一个参考数据分析应用;数据获得模块,其被配置为获取所述目标数据分析应用的配置-性能数据对,其中所述配置-性能数据对包括所述目标数据分析应用的自身运行环境的配置数据和所述目标数据分析应用在所述自身运行环境下运行时的性能数据;以及模型确定模块,其被配置为基于所述目标数据分析应用的配置-性能数据对和所述至少一个参考数据分析应用的配置-性能数据对,确定所述目标数据分析应用的性能预测模型。
[0010]根据本发明的实施例的方法及装置由于结合了已有数据分析应用的配置-性能数据对,因此可以仅需要目标数据分析应用的较少的配置-性能数据对就可以获取目标数据分析应用的性能预测模型,减少积累建立目标数据分析应用的性能预测模型所需的数据的时间,从而加速目标数据分析应用的建模过程,并解决了现有技术中由于耗时的数据积累而导致的数据分析应用的时间价值比低的问题。
【附图说明】
[0011]通过结合附图对本公开示例性实施方式进行更详细的描述,本公开的上述以及其它目的、特征和优势将变得更加明显,其中,在本公开示例性实施方式中,相同的参考标号通常代表相同部件。
[0012]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图;
[0013]图2示出了根据本发明的实施例的确定目标数据分析应用的性能预测模型的方法的流程图;
[0014]图3是图2所示的实施例中确定参考数据分析应用的过程的流程图;
[0015]图4是图2所示的实施例中利用基于参数的迁移学习来确定目标数据分析应用的性能预测模型的过程的流程图;
[0016]图5示出了根据本发明的实施例的确定目标数据分析应用的性能预测模型的装置的示意性框图。
【具体实施方式】
[0017]下面将参照附图更详细地描述本公开的优选实施方式。虽然附图中显示了本公开的优选实施方式,然而应该理解,可以以各种形式实现本公开而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。
[0018]图1示出了适于用来实现本发明实施方式的示例性计算机系统/服务器12的框图。图1显示的计算机系统/服务器12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
[0019]如图1所示,计算机系统/服务器12以通用计算设备的形式表现。计算机系统/服务器12的组件可以包括但不限于:一个或者多个处理器或者处理单元16,系统存储器28,连接不同系统组件(包括系统存储器28和处理单元16)的总线18。
[0020]总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(ISA)总线,微通道体系结构(MAC)总线,增强型ISA总线、视频电子标准协会(VESA)局域总线以及外围组件互连(PCI)总线。
[0021]计算机系统/服务器12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被计算机系统/服务器12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
[0022]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(RAM) 30和/或高速缓存存储器32。计算机系统/服务器12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34可以用于读写不可移动的、非易失性磁介质(图1未显示,通常称为“硬盘驱动器”)。尽管图1中未示出,可以提供用于对可移动非易失性磁盘(例如“软盘”)读写的磁盘驱动器,以及对可移动非易失性光盘(例如⑶-ROM,DVD-ROM或者其它光介质)读写的光盘驱动器。在这些情况下,每个驱动器可以通过一个或者多个数据介质接口与总线18相连。存储器28可以包括至少一个程序产品,该程序产品具有一组(例如至少一个)程序模块,这些程序模块被配置以执行本发明各实施例的功能。
[0023]具有一组(至少一个)程序模块42的程序/实用工具40,可以存储在例如存储器28中,这样的程序模块42包括——但不限于——操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。程序模块42通常执行本发明所描述的实施例中的功能和/或方法。
[0024]计算机系统/服务器12也可以与一个或多个外部设备14 (例如键盘、指向设备、显示器24等)通信,还可与一个或者多个使得用户能与该计算机系统/服务器12交互的设备通信,和/或与使得该计算机系统/服务器12能与一个或多个其它计算设备进行通信的任何设备(例如网卡,调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口 22进行。并且,计算机系统/服务器12还可以通过网络适配器20与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器20通过总线18与计算机系统/服务器12的其它模块通信。应当明白,尽管图中未示出,可以结合计算机系统/服务器12使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵