一种混合部署下基于Spark代价感知的批处理应用驱逐方法技术

技术编号:36210467 阅读:24 留言:0更新日期:2023-01-04 12:06
本发明专利技术涉及云计算技术领域,公开了一种混合部署下基于Spark代价感知的批处理应用驱逐方法,包含定义Spark计算任务重算代价、估计剩余时间代价以及预测LC应用的资源使用需求;首先,由于本发明专利技术只涉及到容器编排平台的修改,兼容已有的Spark应用和所有的LC应用,因此通用性较好;并且由于算法采用触发式平时组件只消耗极少量资源,对于LC、BE应用几乎没有影响;最后,由于可以将重算代价定义成计算代价以及传输代价两部分以及动态感知LC资源使用需求的变化,同时提供了大量的可自定义参数,所以本方法适用于多种场景,通用性较好;本发明专利技术适用于混合部署下由于LC应用负载升高产生了内存争用的情况,提高了资源利用率的同时也提高了集群的总吞吐。了集群的总吞吐。了集群的总吞吐。

【技术实现步骤摘要】
一种混合部署下基于Spark代价感知的批处理应用驱逐方法


[0001]本专利技术涉及云计算
,具体涉及一种混合部署下基于Spark代价感知的批处理应用驱逐方法。

技术介绍

[0002]数据中心是云计算服务的基础。数据中心的应用可以主要分为两类,一类是以在线服务(如Nignx,MongoDB等)为代表的延迟敏感型应用(Latency

Critical,LC)。LC应用多数时间消耗资源低,少数时间会经历突发负载而消耗大量资源,资源不足时会导致请求延迟变高,造成用户体验下降。另一类的应用是以批处理应用(如Spark,MapReduce等)为代表的尽力而为型应用(Best

Effort,BE)。BE应用通常会在运行时消耗大量资源,但可以忍受较高的延迟以及任务的出错重启。将LC应用和BE应用混和部署在同一集群已成为提高数据中心资源利用率的主流方法,然而混合部署会导致资源竞争,造成应用的性能下降。在LC面对突发负载的时候,为了保证LC应用的服务质量目标(QualityofService,QoS),通常会对低优先级BE应用进行驱逐,现有的驱逐策略通常是以随机驱逐或驱逐占有最大资源BE应用为主。然而以Spark计算任务为代表的大数据处理任务,具有多阶段计算的特点,上述的驱逐方式可能会使任务重新计算,造成计算任务完成时间变长,导致数据中心整体的吞吐量下降。

技术实现思路

[0003]为解决上述技术问题,本专利技术提供一种混合部署下基于Spark代价感知的批处理应用驱逐方法,能够提高数据中心的最大性能和吞吐量,本专利技术中的方法通用性好,能够配合市面上主流的资源管理平台监控数据,计算得出最优的驱逐对象,达到整体最佳的驱逐效果。
[0004]为解决上述技术问题,本专利技术采用如下技术方案:
[0005]第一步、定量每个Spark计算任务的重算代价:
[0006]通过监控每个Spark计算任务运行时所记录的信息,可以得到每个Spark计算任务的总阶段数X、各阶段的总分区数N
i
和已完成分区数C
i
,其中i为阶段编号,则阶段i的已完成率R
i
=C
i
/N
i
)。本专利技术定义S
i,j
为阶段i第j块分区的数据大小,T
i,j
为阶段i第j块分区的完成时间,F
i
为洗牌阶段(第i阶段和第i+1阶段之间)传输的数据大小。
[0007]Spark计算任务的重算代价与以下因素强相关:重算数据量、算子复杂度和传输代价。重算数据量为Spark计算任务中已完成阶段内所有计算的分区数据量之和,算子复杂度为Spark计算任务中已完成阶段内所有计算的分区的每单位数据处理时长的平均值,传输代价为阶段内已完成的数据传输量。
[0008]其中第i阶段的重算数据量为第i阶段的算子复杂度为第i阶段传输代价R
i+1
F
i

[0009]根据上述分析,本专利技术定义了如下的总已计算成本,即计算代价
[0010][0011]以及传输代价
[0012][0013]最后通过对计算代价和传输代价分别赋予权重α和β,得到重算代价
[0014]RecalculationCost=α
·
ComputationCost+β
·
TransmissionCost。
[0015]第二步、估计每个Spark计算任务的剩余时间代价:
[0016]Spark计算任务的整个计算过程包括已完成阶段、当前处理阶段和未处理阶段;本专利技术首先计算Spark计算任务的已完成工作量其中x

1代表已完成的阶段数,r
x
代表当前阶段的已完成率,x+y代表总阶段数;根据Spark计算任务的计算时间(即CalculatedTime)的记录,估计剩余时间代价
[0017][0018]其中正系数γ是根据不同阶段的工作负载复杂性设置的。
[0019]第三步、预测LC应用的资源使用需求:
[0020]本专利技术通过监控LC应用的过去一段时间窗口(窗口大小为w)内的资源消耗来预测接下来一段时间内LC应用的资源使用需求;由于大多数驱逐都是由内存争用引起的,因此本专利技术定期(每p分钟一次)监控LC应用的内存使用情况,并将此信息用于驱逐预测。在窗口大小为w时间窗口中进行w次监控采样,假设采样得到的内存使用量为M1,M2,

,M
w
,则可以得出平均内存使用量和方差其中方差Var用于预测LC应用的内存使用趋势。
[0021]第四步、选取驱逐代价最小的Spark计算任务进行驱逐:
[0022]本专利技术根据前三步得到的Spark计算任务重算代价、剩余时间代价以及LC应用的资源使用需求,决定驱逐代价最小的Spark计算任务并进行驱逐。当驱逐发生时(主机资源不足),计算每个Spark计算任务的驱逐代价,驱逐代价
[0023]EvictionCost=RecalculationCost

δ
·
RTCost;
[0024]其中,δ代表标准差,即δ2=Var,如果δ小于设定值,即LC应用的资源使用需求增长幅度较小,则重算代价的权重较大;如果δ大于或者等于设定值,即LC应用的资源使用需求急剧增加,剩余时间代价的权重较大。一旦系统检测到资源争用,就会触发驱逐。
[0025]因此,具体做法是首先计算Spark计算任务的重算代价和剩余时间代价,以及预测LC应用的内存需求,然后通过计算每Spark计算任务的驱逐成本,并选择驱逐成本最小的Spark计算任务驱逐。此过程将继续,直到满足LC应用的资源使用需求。特别的,本专利技术优先驱逐Spark计算任务的工作节点(worker)容器,然后是Spark计算任务的主节点(master)容器,以便于驱逐一部分工作节点(worker)容器后,Spark计算任务还能继续运行。
[0026]与现有技术相比,本专利技术的有益技术效果是:
[0027]本专利技术的基于Spark代价感知的批处理应用驱逐方法,包含了Spark任务重算代价、Spark任务剩余时间代价、LC应用资源使用需求预测、驱逐最小代价等步骤;首先,由于
本专利技术并不涉及资源管理平台以及容器底层代码的修改,能够兼容多种LC应用,因此通用性较好;并且由于无需事先了解BE应用和LC应用的全程资源消耗情况,主要开销是监视BE作业的混洗大小和时间处理信息,以及LC应用的内存使用信息,监控开销对LC和BE作业性能的影响可以忽略不计;相比于传统驱逐策略,本方法能够提高整体的资源利用率和系统吞吐量。
附图说明
[0028]图1为本专利技术基于Spark代价感知的批处理应用驱逐方法的操作流程示意图;
[0029]图2为Spark架构以及流程划分示意图;
[0030]图3为Spark重本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种混合部署下基于Spark代价感知的批处理应用驱逐方法,包括以下步骤:步骤一、定量每个Spark计算任务的重算代价:Spark计算任务的重算代价等于计算代价和传输代价的加权和;其中计算代价等于重算数据量与算子复杂度的乘积,重算数据量为Spark计算任务中已完成阶段内所有计算的分区数据量之和,算子复杂度为Spark计算任务中已完成阶段内所有计算的分区的每单位数据处理时长的平均值;传输代价为阶段内已完成的数据传输量;步骤二、估计每个Spark计算任务的剩余时间代价:Spark计算任务的计算过程包括已完成阶段、当前处理阶段和未处理阶段,根据已完成阶段、当前处理阶段和未...

【专利技术属性】
技术研发人员:许胤龙梁熙远吴思李永坤
申请(专利权)人:中国科学技术大学
类型:发明
国别省市:

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

1