一种最小化租赁成本的公有云服务租赁方法技术

技术编号:25223386 阅读:15 留言:0更新日期:2020-08-11 23:12
本发明专利技术涉及云计算资源调度技术领域,公开了一种最小化租赁成本的公有云服务租赁方法,包括数据预处理、设置任务的虚拟截止时间和任务调度。其中,数据预处理考虑可能发生的数据倾斜现象,利用采样的方法来对数据进行预处理,缓解数据倾斜。设置任务的虚拟截止时间,是为了方便在任务调度的时候,能够在截止期约束下选择合适虚拟机资源。与现有技术相比,本发明专利技术有效地降低了云服务代理商的运营成本,解决了现有技术中没有考虑到的数据倾斜问题,并且在截止期约束下为云服务代理商提供了Spark应用在公有云环境中的合理租赁方法,优化了租赁成本。

【技术实现步骤摘要】
一种最小化租赁成本的公有云服务租赁方法
本专利技术涉及云计算资源调度
,尤其涉及一种最小化租赁成本的公有云服务租赁方法。
技术介绍
如今,在云平台上现有的分布式并行计算框架仍然存在诸多挑战,其中,数据倾斜正成为提升系统性能的瓶颈。数据倾斜这一现象通常由数据本身性质引起,且普遍存在于并行计算框架中。具体的,当数据倾斜出现在计算过程中时,由于少量任务的处理时间明显地多于其它任务的处理时间,因而严重降低了整个系统的执行效率,进而严重阻碍系统并行处理的能力。由于大数据的来源主要是社交媒体、电商平台和搜索引擎三大领域,这些数据的最大特征即数据分布极其不均衡,存在着大量热点数据,例如社交媒体中的热门话题、电商平台的爆款商品和搜索引擎的搜索热点,处理这样的数据分布极其不均衡的数据时,特别容易造成在处理过程中的数据倾斜现象,出现个别“慢”任务(Straggler),从而大大延长整个应用的完工时间。数据倾斜被认为是影响并行分布式框架如Spark平台的执行效率的一个关键问题,并且数据量越大,其导致的执行效率问题就越突出。现如今,对于Spark平台中数据倾斜问题的解决方法较少,但是Hadoop平台上的数据倾斜问题的解决方法已有了一些积累。通常,可以按照处理阶段将数据倾斜划分为Map型、Reduce型、Map&Reduce型和Shuffle型这四种类型。对于Map&Reduce型,在SkewTune系统中,如果任务的剩余时间超过1分钟并且集群中有空闲节点,则该系统在不改变默认分区函数的前提下,在检测到任务为Straggler时,重新分配任务中未被处理的数据给其他闲置节点的新任务,通过连接任务的输入顺序和重新组合输出结果的这种独特的方式来缓解数据倾斜问题。但是这种方法的设计和使用均为针对Hadoop平台进行的,难以直接迁移到Spark平台上使用。目前,并行计算框架中数据倾斜问题的解决方法通常大多基于Hadoop平台,并且由于Spark平台基于内存计算的特性,这些方法大多无法直接应用到解决Spark平台中的数据倾斜问题。而现有基于Spark平台数据倾斜问题的研究存在着顾此失彼的现象,片面性地缓解数据倾斜问题,使得SLA问题凸显。
技术实现思路
专利技术目的:针对现有技术中存在的问题与不足,本专利技术提供了一种最小化租赁成本的公有云服务租赁方法,从云服务代理商的角度出发,在满足用户应用截止期的情况下,同时考虑数据倾斜问题,采用按需实例的方式,动态按需租赁合适的虚拟机以保证应用在截止期内完成,并最小化云服务代理商的租赁成本。本专利技术提供的一种最小化租赁成本的公有云服务租赁方法,包括:步骤1,获取Spark应用程序的采样数据,并标记所述采样数据中可能出现数据倾斜的任务为慢任务,将所述慢任务划分成多个子任务;步骤2,根据所述Spark应用程序的截止期,基于关键路径长度的截止期划分方法,确定所述Spark应用程序中每个并行计算阶段和计算任务组的子截止期,所述计算任务组包括多个计算单元;步骤3,根据就绪的所述计算任务组确定待调度的计算单元优先队列Q,所述待调度的计算单元优先队列Q中计算单元的优先级根据每个计算单元的数据量大小按照降序排列;步骤4,将所述待调度的计算单元优先队列Q的队头出队作为调度任务,将所述调度任务调度到公有云的资源上进行处理;调度所述调度任务时,在满足每个所述调度任务的子截止期的前提下,将所述调度任务调度到租赁价格代价较小的按需资源上。进一步地,在一种实现方式中,所述步骤1包括:步骤1-1,采用蓄水池算法对用户提交的每个所述Spark应用程序进行采样,将每个计算任务组作为一个蓄水池,采样部分计算单元作为采样数据,计算所有样本所需处理数据量的均值,即获得每个所述计算任务组中计算单元所需处理数据量的均值;步骤1-2,根据所述蓄水池算法的抽样比例,建立分布直方图;步骤1-3,根据,获得所述计算单元的偏斜因子:其中,表示计算单元所需处理数据量,表示每个计算任务组中每个计算单元所需处理数据量的均值;若所述偏斜因子大于或等于0.5,则将任务标记为慢任务;步骤1-4,将被标记为所述慢任务的任务放入慢任务集合;步骤1-5,根据所述采样数据,将所述慢任务的数据划分成均值的预设倍数个数据分区,为每个所述数据分区对应生成一个子任务,所述预设倍数的值为。进一步地,在一种实现方式中,所述步骤2包括:步骤2-1,根据用户提交的截止期约束和公有云中虚拟机资源的执行速度以及并行计算阶段与计算任务组间的偏序关系,生成相应的拓扑序列,设使用处理速度最快公有云资源预估的时间参数,所述时间参数包括最早开始时间和最晚开始时间;步骤2-2,根据所述拓扑序列计算每个并行计算阶段的子截止期;步骤2-3,跟据所述计算任务组所在的层次,通过以下公式,确定每个并行计算阶段及计算任务组的子截止期:其中,为计算得到的第j个计算任务组的子截止期,表示第j个计算任务组的最晚结束时间,为给定的Spark应用的截止期;所述计算单元的子截止期等于计算单元所在计算任务组的子截止期;步骤2-4,将初始并行计算阶段队列SJ的队头元素,即计算任务组队列S出队,将所述初始并行计算阶段队列SJ队头元素中的所有计算单元加入待调度的计算单元优先队列Q中;步骤2-5,更新所述待调度的计算单元优先队列Q,即将所有没有前驱计算任务组,或者,所述前驱计算任务组已经处理完成的计算任务组中的所有计算单元添加到待调度的计算单元优先队列Q中。进一步地,在一种实现方式中,在所述步骤2-4之前,还包括初始化实例的资源可用区间表和待调度的计算单元优先队列Q,公有云中的所述实例的资源可用区间表表示为已租赁的预留实例资源的每个节点的可用时间段;其中,已租赁的虚拟机资源表示为SR={SR1,SR2,…,SR},是一个包含个处理速度不同的虚拟机资源,,且为正整数;所述初始化实例的资源可用区间表和待调度的计算单元优先队列Q,包括:初始并行计算阶段队列SJ={|i属于1~},其中表示所述Spark应用程序中的所有并行计算阶段,其中表示并行计算阶段的数量,,且为正整数;计算任务组队列S={|j属于1~},其中表示没有前驱计算任务组或前驱计算任务组已经处理完成的计算任务组,表示第i个并行计算阶段中计算任务组的数量,其中,且为正整数;待调度计算单元集合T={|i属于1~},其中表示当前可被调度计算单元,表示第i个并行计算任务阶段中第j个计算任务组的任务数量,其中,且为正整数。进一步地,在一种实现方式中,在所述步骤3之后,还包括:判断所述计算任务组队列S是否为空;若所述计算任务组队列S为空,则结束;若所述计算任务组队列S不为空,则执行所述步骤4的操作。进一步地,在一种实现方式中,所述步骤4,包括:步骤4-1,判断使用当前云资源的本文档来自技高网
...

【技术保护点】
1.一种最小化租赁成本的公有云服务租赁方法,其特征在于,包括:/n步骤1,获取Spark应用程序的采样数据,并标记所述采样数据中可能出现数据倾斜的任务为慢任务,将所述慢任务划分成多个子任务;/n步骤2,根据所述Spark应用程序的截止期,基于关键路径长度的截止期划分方法,确定所述Spark应用程序中每个并行计算阶段和计算任务组的子截止期,所述计算任务组包括多个计算单元;/n步骤3,根据就绪的所述计算任务组确定待调度的计算单元优先队列Q,所述待调度的计算单元优先队列Q中计算单元的优先级根据每个计算单元的数据量大小按照降序排列;/n步骤4,将所述待调度的计算单元优先队列Q的队头出队作为调度任务,将所述调度任务调度到公有云的资源上进行处理;调度所述调度任务时,在满足每个所述调度任务的子截止期的前提下,将所述调度任务调度到租赁价格代价较小的按需资源上。/n

【技术特征摘要】
1.一种最小化租赁成本的公有云服务租赁方法,其特征在于,包括:
步骤1,获取Spark应用程序的采样数据,并标记所述采样数据中可能出现数据倾斜的任务为慢任务,将所述慢任务划分成多个子任务;
步骤2,根据所述Spark应用程序的截止期,基于关键路径长度的截止期划分方法,确定所述Spark应用程序中每个并行计算阶段和计算任务组的子截止期,所述计算任务组包括多个计算单元;
步骤3,根据就绪的所述计算任务组确定待调度的计算单元优先队列Q,所述待调度的计算单元优先队列Q中计算单元的优先级根据每个计算单元的数据量大小按照降序排列;
步骤4,将所述待调度的计算单元优先队列Q的队头出队作为调度任务,将所述调度任务调度到公有云的资源上进行处理;调度所述调度任务时,在满足每个所述调度任务的子截止期的前提下,将所述调度任务调度到租赁价格代价较小的按需资源上。


2.根据权利要求1所述的一种最小化租赁成本的公有云服务租赁方法,其特征在于,所述步骤1包括:
步骤1-1,采用蓄水池算法对用户提交的每个所述Spark应用程序进行采样,将每个计算任务组作为一个蓄水池,采样部分计算单元作为采样数据,计算所有样本所需处理数据量的均值,即获得每个所述计算任务组中计算单元所需处理数据量的均值;
步骤1-2,根据所述蓄水池算法的抽样比例,建立分布直方图;
步骤1-3,根据,获得所述计算单元的偏斜因子:
其中,表示计算单元所需处理数据量,表示每个计算任务组中计算单元所需处理数
据量的均值;
若所述偏斜因子大于或等于0.5,则将任务标记为慢任务;
步骤1-4,将被标记为所述慢任务的任务放入慢任务集合;
步骤1-5,根据所述采样数据,将所述慢任务的数据划分成均值的预设倍数个数据分
区,为每个所述数据分区对应生成一个子任务,所述预设倍数的值为。


3.根据权利要求2所述的一种最小化租赁成本的公有云服务租赁方法,其特征在于,所述步骤2包括:
步骤2-1,根据用户提交的截止期约束和公有云中虚拟机资源的执行速度以及并行计算阶段与计算任务组间的偏序关系,生成相应的拓扑序列,设使用处理速度最快公有云资源预估的时间参数,所述时间参数包括最早开始时间和最晚开始时间;
步骤2-2,根据所述拓扑序列计算每个并行计算阶段的子截止期;
步骤2-3,跟据所述计算任务组所在的层次,通过以下公式,确定每个并行计算
阶段及计算任务组的子截止期:



其中,为计算得到的第j个计算任务组的子截止期,表示第j个计算任务
组的最晚结束时间,为给定的Spark应用的截止期;所述计算单元的子截止期等于计算单
元所在计算任务组的子截止期;
步骤2-4,将初始并行计算阶段队列SJ的队头元素,即计算任务组队列S出队,将所述初始并行计算阶段队列SJ队头元素中的所有计算单元加入待调度的计算单元优先队列Q中;
步骤2-5,更新所述待调度的计算单元优先队列Q,即将所有没有前驱计算任务组,或者,所述前驱计算任务组已经处理完成的计算任务组中的所有计算单元添加到待...

【专利技术属性】
技术研发人员:徐海燕任乐天袁龙张涛
申请(专利权)人:金陵科技学院江苏新扬子造船有限公司
类型:发明
国别省市:江苏;32

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

1