一种大数据分析任务的高效云配置选择算法的制作方法

文档序号:18248005发布日期:2019-07-24 09:30阅读:125来源:国知局
一种大数据分析任务的高效云配置选择算法的制作方法
本发明属于云计算领域,尤其涉及基于大数据分析任务的高效云配置算法。
背景技术
:大规模数据分析任务日益增长,涉及的任务内容也日益复杂,其中经常涉及机器学习、自然语言处理和图像处理等方面。与传统计算任务相比,此类任务通常是数据密集型和计算密集型的,需要更长的计算时间和更高的计算成本。因此为了完成大规模数据分析任务,通常利用云计算巨大的计算能力来帮助完成任务。为大规模分析任务选择最佳的云配置,能够提高任务的运行效率,并且能降低用户的计算成本。为了满足不同的计算要求,现有的云服务提供商为用户提供上百种具有不同资源配置的实例类型(如亚马逊的EC2、微软的Azure和谷歌的ComputeEngine)。虽然大多数云服务提供商只允许用户从可用实例类型池中进行选择实例类型,但Google的ComputeEngine允许用户自定义配置虚拟机(配置vCPU和内存),这也使得选择正确的云配置变得更具挑战性。除此之外,各大云服务提供商也提供了Serverless云架构(例如亚马逊Lambda,谷歌CloudFunctions和微软AzureFunctions),这项服务允许用户将任务作为Serverless功能运行,而无需使用预先指定的配置启动实例。但是,Serverless架构可能需要应用程序重构其代码,而且Serverless云提供商并不能够帮助用户将任务完成时间最小化,或者帮助用户降低计算成本。云配置的选择,即实例的类型和实例数量的选择,直接影响任务的完成时间和耗费的经济成本。正确选择的云配置可以以更低的成本实现相同的性能目标。由于大规模数据分析任务更长的运行时间,发掘潜在的可节省成本就显得更为重要。由于任务的多样化,以及实例类型和集群规模的组合多样化,使得云配置的搜索空间变得巨大。在如此庞大的搜索空间中,对最佳云配置的使用穷举搜索既不实际也难以扩展。为限制搜索空间,CherryPick算法通过使用有限的任务信息来限制搜索空间,以此来选择最佳云配置。CherryPick针对成本最小化进行了优化,但不能用于优化其他目标,例如通过成本预算来最小化作业完成时间。除此之外,Ernest和PARIS则使用性能建模方法来选择云配置。通过使用这类性能预测模型,用户可以为优化目标不同的任务选择不同的云配置,例如,选择最廉价或最快速的云配置。但是,Ernest需要为每个实例类型训练预测模型,而PARIS仅在多个公共云中选择最佳实例类型,而不能给出集群大小。技术实现要素:本发明针对现有技术的不足,提出一种大数据分析任务的高效云配置选择算法。本发明的技术方案为一种大数据分析任务的高效云配置选择算法,包含以下步骤:步骤1:训练数据收集阶段,实现方式如下,训练数据收集器仅对输入数据的一小部分进行特定实例类型的实验,这将用于预测在整个输入数据上任务执行的性能。训练数据收集包括实验选择和实验执行。实验选择:在实验选择中,需要确定两个重要的实验参数:(1)比例,即实验使用数据占总输入数据的比例;(2)任务执行时所使用的云服务器实例个数。本发明采用统计技术来选择部分实验参数,主要使用能够产生尽可能多信息的实验参数来预测任务运行时的性能,从而保证较高的预测准确性。根据D-optimality,选择最大化协方差矩阵(信息矩阵)加权和的实验参数。使用Ei=(xi,yi)来表示实验参数设置,其中xi是实例数,yi是输入数据比例。设M表示通过枚举所有可能的比例和实例数得到的实验参数设置总数。然后,利用Ei,可以计算出K维特征向量Fi,其中每项对应于预测模型中的一个项。通过这种方式,获得关于所有实验设置的M个特征向量。根据D-optimality,在实验参数选择时,选择最大化协方差矩阵(信息矩阵)加权和的实验参数,即约束条件为0≤αi≤1,i∈[1,M],其中αi表示选择i实验设置的概率。通过添加预算约束项B来表示实验的总成本,其中yi/xi是根据云平台上的定价模型来运行实验Ei的成本。在解决上述优化问题时,根据概率αi以非递增顺序对M个实验设置进行排序选择靠前的数据组作为训练数据。本发明中选择前10个数据组作为训练数据。实验执行:在选定的实验设置后,确定使用整个输入数据集中的哪些数据样本来组成实验数据集,以满足指定的比例。本发明中采用随机抽样从整个输入数据集中选择数据样本,因为随机抽样可以避免陷入数据集的孤立区域。在获得小数据集后,使用所选实验设置部署指定数量的实例并开始运行任务,之后以试验参数和任务完成时间作为用于构建预测模型的训练数据。步骤2:模型构造阶段,实现方式如下,模型构造器由模型构建器和模型转换器组成。利用收集的特定实例类型的训练数据,模型构建器可以建立基础预测模型。之后,模型变换器根据基础预测模型转化导出其余实例类型的预测模型。模型构建器:在特定实例类型上运行输入数据集子集的实验时,使用Tbase(x,y)来表示任务运行时间,给定实例数为x,数据集的比例为y。大规模分析任务通常以连续的步骤(即迭代)运行,直到满足终止条件。每个步骤主要由两个阶段组成:并发计算和数据通信。任务执行的计算时间与数据集大小保持相对关系,并且在大规模分析任务中有几种代表性的通信模式。因此,通过解析计算时间和通信时间来推断大规模分析任务的运行时间。本发明中主要目标是通过任务的计算和通信模式,并设计涉及x和y的拟合项,来得到给定任务的性能预测函数Tbase(x,y)。计算耗时,用户定义的迭代算法会对输入数据的每个样本进行运算所产生的时间成本。对于集群计算环境中的大规模数据处理任务,可以根据数据集的特征(例如,密集或稀疏)和算法,通过若干不同的拟合项来近似计算时间。由此,计算时间会是关于实例数量和数据集规模的一个函数。通信耗时,数据通过网络传送到目标节点产生的时间成本。图1抽象出了大规模数据分析任务中代表性的通信模式。尽管在编程模型和执行机制方面存在差异,但常见的通信模式可以表示出集群应用程序中的大多数通信情况。通信耗时主要是关于实例数量的函数,可以根据任务的不同通信模式,来推断出函数的拟合项。例如,当每个实例的数据大小不变时,通信耗时随着partition-aggregate通信模式的实例数线性增加,但是对于shuffle通信模式是二次方的关系。给定函数Tbase(x,y)的所有候选拟合项,使用互信息作为拟合项的选择标准,排除冗余项而只选择良好预测因子作为拟合项。设表示所有候选项的集合,其中每个项fk是x和y由计算和通信模式决定的函数。给定在不同数量的实例和不同数据规模下收集的m个训练数据样本,首先计算每个实验设置的K维特征向量Fi=(f1,i,…,fK,i),例如fk,i=yi/xi。然后,计算每个项与运行时间之间的互信息,并选择与运行时间的互信息高于阈值的项。根据m个训练运行时间样本,拟合得到基础预测模型中wk的值。其中βk表示是否选择了拟合项fk(βk=1表示选择该项)。模型转换器:云提供商通常提供具有不同CPU,内存,硬盘和网络容量组合的各种实例系列,以满足不同作业的需要,例如通用和计算/存储器/存储优化。通过大量实验可知给定任务和固定数据集,可以根据简单映射将一个实例类型的运行时间转换为不同的实例类型。因此,不需要对每种实例类型进行实验来获取训练数据之后再来构建预测模型,这大大减少了训练时间和训练成本。变换器Φ是从基础预测模型到目标预测模型的映射Φ:Tbase(x,y)→Ttarget(x,y)。通过比较在相同任务和数据集规模下,不同实例类型的运行时间,预测函数中的拟合项类别是相似的。换句话说,相同任务和数据集规模下,如果fk包含在Tbase(x,y)中,则很可能Ttarget(x,y)也应该包含fk。这主要是因为在相同的应用程序配置和实例数下,任务的计算和通信模式基本保持不变。然而,在不同的实例类型下,每个项的权重将是不同的,所以需要关注从基础预测模型到目标预测模型的权重映射。本发明中采用了一种简单而有效的映射方法。设表示训练数据采集器选择的实验设置中成本最低的,运行时间为tbase。我们在目标实例类型上运行实验以获得运行时间ttarget。模型变换器将目标实例类型的预测模型导出为其中步骤3:选择器构造阶段,实现方式如下,将所有实例类型的运行时间预测模型集成到单个运行时间预测器T(x,y)中,其中x是由实例的类型和数量组成的云配置向量。对于任务的给定输入数据集,目标是使用户能够找到满足特定运行时间和成本约束的最优选云配置。令P(x)为云配置x的单位时间价格,即实例类型的单价乘以实例的数量。最优的云配置选择问题可以表述为x*=S(T(x,y),C(x),Ry,其中Cx=Px×Tx,y,0≤y≤1其中C(x)是云配置x的单位时间价格,R(y)是用户添加的约束,例如最大容忍运行时间或最大容忍成本。选择器S(*)由用户确定,并用于选择满足期望性能或成本的最佳云配置x*。附图说明图1是本发明的通信模式简介图。图2是本发明的总体设计结构图图3是本发明的有效性对比图图4是本发明的在Spark上预测准确率图5是本发明的在Hadoop上预测准确率图6是本发明的任务总时间和模型训练时间对比图图7是本发明的TeraSort在不同数据集大小下的预测准确率图8是本发明的WordCount在不同实例类型上的花费图9是本发明的TeraSort和WordCount在不同集群规模上的完成时间具体实施方式本发明主要根据大数据分析任务的计算模式和通信模式,提出了一个大数据分析任务的高效云配置选择框架,使用户可以找到适合给定大数据分析任务的云配置,从而大大降低大规模数据分析任务的计算成本。本框架通过少量的实验来建立预测模型,使用的是极少的输入数据和小规模集群,而且可以通过极少的额外实验智将一个实例类型的预测模型转换为另一个实例类型的预测模型通过本发明的云配置选择框架,云计算用户可以以更低的成本确定最佳云配置。参见图2,实施例以在亚马逊云服务(AmazonWebService,AWS)上实现的大数据分析任务的云配置选择算法(命名为Silhouette)为例对本发明的流程进行一个具体的阐述,如下:步骤1:训练数据收集阶段,实现方式如下,训练数据收集器仅对输入数据的一小部分进行特定实例类型的实验,这将用于预测在整个输入数据上任务执行的性能。训练数据收集包括实验选择和实验执行。实验选择:在实验选择中,需要确定两个重要的实验参数:(1)比例,即实验使用数据占总输入数据的比例;(2)任务执行时所使用的云服务器实例个数。本实施例中使用统计技术来选择部分实验参数,主要使用能够产生尽可能多信息的实验参数来预测任务运行时的性能,从而保证较高的预测准确性。根据D-optimality,选择最大化协方差矩阵(信息矩阵)加权和的实验参数。使用Ei=(xi,yi)来表示实验参数设置,其中xi是实例数,yi是输入数据比例。设M表示通过枚举所有可能的比例和实例数得到的实验参数设置总数。然后,利用Ei,我们可以计算出K维特征向量Fi,其中每项对应于预测模型中的一个项。通过这种方式,我们能够获得关于所有实验设置的M个特征向量。根据D-optimality,在实验参数选择时,我们选择最大化协方差矩阵(信息矩阵)加权和的实验参数,即约束条件为0≤αi≤1,i∈[1,M],其中αi表示选择i实验设置的概率。我们通过添加预算约束项B来表示实验的总成本,其中yi/xi是根据云平台上的定价模型来运行实验Ei的成本。在解决上述优化问题时,根据概率αi以非递增顺序对M个实验设置进行排序选择实验。实验执行:在选定的实验设置后,需要确定使用整个输入数据集中的哪些数据样本来组成实验数据集,以满足指定的比例。本发明采用随机抽样从整个输入数据集中选择数据样本,因为随机抽样可以避免陷入数据集的孤立区域。在获得小数据集后,使用所选实验设置部署指定数量的实例并开始运行任务,之后以试验参数和任务完成时间作为用于构建预测模型的训练数据。实施例的具体实施过程说明如下:实施例中使用的大规模数据分析处理引擎为Spark和Hadoop。在Spark上,我们分别运行了3种基于SparkML的机器学习:分类、回归和聚类。其中分类算法使用使用具有44000个特征的文本分类基准数据集rcv1,回归算法和聚类算法使用100万个具有44000个特征的合成数据集。在Hadoop上,分别运行了TeraSort算法和WordCount算法。其中TeraSort算法是一种大规模数据分析的通用基准测试应用程序,主要工作是对随机生成的记录进行排序,使用的是一个有2亿样本的数据集,WordCount算法用来计算来自维基百科文章的5500万个条目中的单词出现频率。在AWS的EC2实例类型池中,选择m4.large(通用),c5.large(计算优化),r4.large(内存优化)和i3.large(存储优化),每种实例类型都有2个vCPU,并预装Linux系统。实验中使用的数据分析处理引擎型号分别为ApacheSpark2.2和Hadoop2.8。表1列出了每种类型实例的配置和价格。表1实例类型内存(GiB)实例硬盘价格(美元/小时)m4.large8EBS0.1c5.large4EBS0.085r4.large15.25EBS0.133i3.large15.25SSD0.156首先设置用于建模实验的数据规模为1%到8%,实验集群规模限制在1到8台实例。实施例中,取概率αi前10的实验进行测试。选择输入数据样本时,从输入数据集中随机选择一个起始种子样本;然后,在每个采样步骤,随机地获取输出样本;重复上述过程,直到所选样本的数量满足实验参数中规模要求。在实施例中,使用m4.large作为基础实例类型,所以最后将随机取样的数据集运行在实验参数中指定规模的m4.large集群上,记录运行时间。步骤2:模型构造阶段,实现方式如下,模型构造器由模型构建器和模型转换器组成。利用收集的特定实例类型的训练数据,模型构建器可以建立基础预测模型。之后,模型变换器根据基础预测模型转化导出其余实例类型的预测模型。模型构建器:在特定实例类型上运行输入数据集子集的实验时,使用Tbase(x,y)来表示任务运行时间,给定实例数为x,数据集的比例为y。大规模分析任务通常以连续的步骤(即迭代)运行,直到满足终止条件。每个步骤主要由两个阶段组成:并发计算和数据通信。任务执行的计算时间与数据集大小保持相对关系,并且在大规模分析任务中有几种代表性的通信模式。因此,可以通过解析计算时间和通信时间来推断大规模分析任务的运行时间。本实施例的主要目标是通过任务的计算和通信模式,并设计涉及x和y的拟合项,来得到给定任务的性能预测函数Tbase(x,y)。计算耗时,用户定义的迭代算法会对输入数据的每个样本进行运算所产生的时间成本。对于集群计算环境中的大规模数据处理任务,可以根据数据集的特征(例如,密集或稀疏)和算法,通过若干不同的拟合项来近似计算时间。由此,计算时间会是关于实例数量和数据集规模的一个函数。要确定函数的确切拟合项,需要结合具体的领域知识。通信耗时,数据通过网络传送到目标节点产生的时间成本。图1抽象出了大规模数据分析任务中代表性的通信模式。尽管在编程模型和执行机制方面存在差异,但常见的通信模式可以表示出集群应用程序中的大多数通信情况。通信耗时主要是关于实例数量的函数,可以根据任务的不同通信模式,来推断出函数的拟合项。例如,当每个实例的数据大小不变时,通信耗时随着partition-aggregate通信模式的实例数线性增加,但是对于shuffle通信模式是二次方的关系。给定函数Tbase(x,y)的所有候选拟合项,我们使用互信息作为拟合项的选择标准,排除冗余项而只选择良好预测因子作为拟合项。设表示所有候选项的集合,其中每个项fk是x和y由计算和通信模式决定的函数。给定在不同数量的实例和不同数据规模下收集的m个训练数据样本,首先计算每个实验设置的K维特征向量Fi=(f1,i,…,fK,i),例如fk,i=yi/xi。然后,我们计算每个项与运行时间之间的互信息,并选择与运行时间的互信息高于阈值的项。根据m个训练运行时间样本,拟合得到基础预测模型中wk的值。其中βk表示是否选择了拟合项fk(βk=1表示选择该项)。模型转换器:云提供商通常提供具有不同CPU,内存,硬盘和网络容量组合的各种实例系列,以满足不同作业的需要,例如通用和计算/存储器/存储优化。通过大量实验,我们发现给定任务和固定数据集,可以根据简单映射将一个实例类型的运行时间转换为不同的实例类型。因此,不需要对每种实例类型进行实验来获取训练数据之后再来构建预测模型,这大大减少了训练时间和训练成本。变换器Φ是从基础预测模型到目标预测模型的映射Φ:Tbase(x,y)→Ttarget(x,y)。通过比较在相同任务和数据集规模下,不同实例类型的运行时间,有上可知预测函数中的拟合项类别是相似的。换句话说,相同任务和数据集规模下,如果fk包含在Tbase(x,y)中,则很可能Ttarget(x,y)也应该包含fk。这主要是因为在相同的应用程序配置和实例数下,任务的计算和通信模式基本保持不变。然而,在不同的实例类型下,每个项的权重将是不同的,所以我们需要关注从基础预测模型到目标预测模型的权重映射。我们采用了一种简单而有效的映射方法。设表示训练数据采集器选择的实验设置中成本最低的,运行时间为tbase。我们在目标实例类型上运行实验以获得运行时间ttarget。模型变换器将目标实例类型的预测模型导出为其中实施例的具体实施方案如下:实施例中,在预测函数中加入的拟合项有:常数项、y/x线性项、数据规模的平方根与实例数项。固定常数表示在串行计算中花费的时间;对于计算时间与数据集的大小成线性关系的算法,添加数据比例与实例数y/x的拟合项;对于稀疏数据集,添加数据规模的平方根与实例数的拟合项。表2通信模式结构拟合项Parallelread/writeManyOne-to-OnexPartition-aggregateMany-to-OnelogxBroadcastOne-to-ManyxCollectMany-to-OnexShuffleMany-to-Manyx2GlobalcommunicationAll-to-Allx2实施例中,根据不同任务的通信模式,使用了如表2中展示的通信拟合项,分别为x、logx、x2。选定所有项之后,使用非负最小二乘(NNLS)求解器来计算得到基础预测模型。之后,选择基础实验中成本最低的实验设置,用同样的实验设置在目标实例类型上运行任务。最后导出所有实例类型的预测模型为步骤3:选择器构造阶段,实现方式如下,将所有实例类型的运行时间预测模型集成到单个运行时间预测器T(x,y)中,其中x是由实例的类型和数量组成的云配置向量。对于任务的给定输入数据集,目标是使用户能够找到满足特定运行时间和成本约束的最优选云配置。令P(x)为云配置x的单位时间价格,即实例类型的单价乘以实例的数量。最优的云配置选择问题可以表述为x*=S(T(x,y),C(x),Ry,其中Cx=Px×Tx,y,0≤y≤1其中C(x)是云配置x的单位时间价格,R(y)是用户添加的约束,例如最大容忍运行时间或最大容忍成本。选择器S(*)由用户确定,并用于选择满足期望性能或成本的最佳云配置x*。实施例具体的实施过程说明如下:得到所有任务在待选实例类型上的所有预测模型之后,需要找到运行成本最低点的最优云配置方案。云配置方案需要满足的是在给定成本预算的前提下,能够使得任务在最短的时间内完成。对实施例,通过4项测试结果对算法进行评估,分别为:有效性、预测准确度、训练成本和应用扩展性。有效性:比较SILHOUETTE和Ernest在5任务中的表现。图3(a)显示SILHOUETTE的预测精度与Ernest的预测精度相当,图3(b)显示SILHOUETTE的训练时间和训练成本远低于Ernest。当我们为2种实例建立预测模型时,SILHOUETTE可以节省25%的训练时间和30%的成本。从图3(c)可以看出,当有更多候选实例类型时,SILHOUETTE的训练时间和训练成本比Ernest要低更多,而当有5种候选实例类型时,SILHOUETTE和Ernest的训练时间分别为25分钟和83分钟。当有更多候选实例类型,可以预见到的是SILHOUETTE表现更出色。预测准确度:图4、5表明,m4.large的基本预测模型的预测精度和c5.large的变换预测模型都可以实现高精度,这证实了模型变换器在SILHOUETTE中的有效性。训练成本:SILHOUETTE旨在以较低的开销找到最佳的云配置。因此,将整个任务的完成时间与构建基础预测模型的训练数据时间进行比较。图6表明,除TeraSort外,SILHOUETTE的训练时间低于所有应用的总完成时间的20%。应用扩展性:在不同大小的数据集上,SILHOUETTE使用相同的实验设置来构建基础和变换预测模型,并评估其预测精度。图7说明当我们使用1.5倍、2倍、2.5倍和3倍数据集大小时,预测误差始终低于15%,这表明即使数据集的大小改变,SILHOUETTE建立的预测模型仍然可以保持较高的准确性。本实施例中使用SILHOUETTE为WordCount选择最佳云配置。考虑表1中四种实例类型,假设选择器优化目标为:给定最大任务完成时间,最小化总成本。图9显示了使用每种实例类型下,整个数据集运行任务的总时间和总成本。我们可以观察到,计算优化实例类型c5.large的总时间与存储优化实例类型i3.large相当,SILHOUETTE将选择成本更低的前者。之后,可以使用SILHOUETTE来确定给定实例类型的最佳实例数。考虑两个任务,分别为TeraSort和WordCount。图9给出了两项任务在不同集群大小下的任务运行时间,SILHOUETTE预测的运行时间非常接近实际运行时间,由此可以选择具体的集群规模。本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属
技术领域
的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1