CN108647137B - 一种作业性能预测方法、装置、介质、设备及系统 - Google Patents
一种作业性能预测方法、装置、介质、设备及系统 Download PDFInfo
- Publication number
- CN108647137B CN108647137B CN201810443167.3A CN201810443167A CN108647137B CN 108647137 B CN108647137 B CN 108647137B CN 201810443167 A CN201810443167 A CN 201810443167A CN 108647137 B CN108647137 B CN 108647137B
- Authority
- CN
- China
- Prior art keywords
- job
- cloud host
- spark
- instant
- completion time
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3447—Performance evaluation by modeling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Evolutionary Biology (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种作业性能预测方法,包括获取大数据作业的作业相关参数;收集瞬时云主机的相关特征参数;建立Spark作业基本性能预测模型得到Spark作业完成时间;判断是否发生瞬时云主机撤回事件,若否,则基于Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间;若是,则基于关键RDD数据检查备份机制评估额外开销,并基于额外开销、Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间。本发明不管瞬时云主机有没有发生撤回都可以进行作业性能预测,在发生撤回事件时,通过关键RDD数据检查备份机制减少额外时间开销,帮助用户减少成本预算。本发明还涉及一种作业性能预测装置、介质、设备及系统。
Description
技术领域
本发明属于大数据处理平台应用的作业性能预测技术领域,具体涉及一种面向瞬时云主机的大数据分析作业性能预测方法、装置、介质、设备及系统。
背景技术
随着大数据时代的到来,大数据技术也随之不断发展和更新,各种大数据处理平台如Apache Spark,MapReduce,Dryad等成为进行大数据分析处理的主要应用平台。在分布式大数据分析应用场景中,DAG(Directed Acyclic Graph,有向无环图)是一种非常常见的计算结构。DAG图是有向无环图的简称,DAG类型计算指的是将计算作业在内部分解成为若干个子任务,子任务之间的计算逻辑关系构建成DAG图。大数据分析作业是运行在大数据处理平台的应用程序,在执行期间的计算逻辑会被转化成DAG图进行表示,并且DAG图的形式与进行大数据分析的输入数据量无关。
为了满足在云计算环境中部署大数据分析应用的快速增长需求,大型云供应商(如亚马逊,谷歌,阿里云等)将越来越多的资金投入于云数据中心的建立。但实际上各大数据中心都存在大量的空闲资源,只有少数高峰时期资源被充分使用。因此云供应商将未充分利用的资源以低价可撤回瞬时云主机(例如亚马逊EC2现货实例,谷歌GCE抢占式实例和阿里云ECS竞价实例)的形式提供给用户使用,以最大化资源利用率和收益。这种瞬时云主机非常适合大数据分析这类可以方便控制运行时间的作业,但作业在执行期间可能面临瞬时云主机被撤回的风险,因此如何实现对低价可撤回瞬时云主机上的大数据分析作业进行性能预测,是一个十分值得探讨研究的问题。
为了实现对大数据分析作业的性能预测,已经有一些方法被提出用于Spark大数据处理平台上大数据分析作业的性能预测。但这些模型往往考虑不全面,有的模型只是根据计算和数据传输结构建立了一个关于输入数据量和云主机数量的简单通用线性函数模型,而有的模型则没有考虑任务并行对数据处理速率的影响,还有的则没有考虑中间数据Shuffle的时间花销。另外,已有的性能预测方法只能用于没有瞬时云主机撤回情况下的大数据分析作业,当有瞬时云主机发生撤回时,如何对丢失数据重计算的额外开销进行分析评估,并有效地预测作业完成时间的模型方法还没有。而且巨大的重计算的开销还会严重导致作业性能下降,因此也需要一种合适的容错机制来减少瞬时云主机撤回导致的性能损失,尽量保证云主机撤回时的作业性能。
发明内容
为了解决上述问题,本发明提供一种作业性能预测方法、装置、介质、设备及系统。
本发明的实施方式公开了一种作业性能预测方法,该方法包括:
获取大数据分析作业的作业相关参数;
收集作为计算资源的瞬时云主机的相关特征参数;
基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,如果没有发生瞬时云主机撤回事件,则基于Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间;如果发生瞬时云主机撤回事件,则基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销,并基于额外开销、Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间。
在一示范例中,根据作业提交历史记录判断是否已经提交过大数据分析作业,若已经提交过,则从存储器中获取存储的作业相关参数;若没有提交过,则将大数据分析作业提交到带有关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析作业预运行产生的事件日志以获取作业相关参数。
在一示范例中,作业相关参数包括DAG图的Stage集合(S)、每个Stage的祖先Stage集合(Ai)、并行的Stage集合(Pi),瞬时云主机的相关特征参数包括磁盘I/O带宽网络I/O带宽和历史价格数据。
在一示范例中,建立Spark作业基本性能预测模型包括通过拓扑排序的方法进行Stage块的划分,将入度为0的Stage划分为一个Stage块。
在一示范例中,Spark作业基本性能预测模型为:
其中Tjob表示Spark作业完成时间,表示一个Stage块的完成时间,表示一个Stage的完成时间,表示一个Stage运行时shuffle读取数据和写数据的时间之和,表示一个Stage中的数据计算处理时间,表示Stage运行过程的Task序列化以及垃圾回收时间。
在一示范例中,判断在作业完成之前是否发生瞬时云主机撤回事件是通过比较基于历史价格数据获得的瞬时云主机的平均无故障时间MTTF与Spark作业完成时间进行的,当平均无故障时间MTTF小于Spark作业完成时间时,判定发生瞬时云主机撤回事件,当平均无故障时间MTTF大于Spark作业完成时间时,判定不发生瞬时云主机撤回事件。
在一示范例中,瞬时云主机撤回事件导致的额外开销包括检查备份关键RDD数据的开销Tchk和恢复丢失RDD数据的重计算开销Trst。
在一示范例中,关键RDD数据检查备份机制将满足以下任意一个条件的RDD作为关键RDD数据进行检查备份:
Stage输出RDD数据量与Stage输入RDD数据量之比大于第一阈值;
Stage执行时间与整个作业执行时间的百分比超过第二阈值。
在一示范例中,提交大数据分析作业时输入数据仅为实际数据的一部分,并且使用单节点进行作业预运行。
本发明的实施方式还公开了一种作业性能预测装置,该装置包括:
作业相关参数获取模块,该作业相关参数获取模块获取大数据分析作业的作业相关参数;
相关特征参数收集模块,该相关特征参数收集模块收集作为计算资源的瞬时云主机的相关特征参数;
基本性能预测模型建立模块,该基本性能预测模型建立模块基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
瞬时云主机撤回事件判断模块,该瞬时云主机撤回事件判断模块基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件;
额外开销评估模块,当瞬时云主机撤回事件判断模块判定发生瞬时云主机撤回事件时,额外开销评估模块基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销;
作业完成时间预测模块,作业完成时间预测模块预测瞬时云主机的资源配置下的Spark作业完成时间,当没有发生瞬时云主机撤回事件时,基于Spark作业完成时间以及瞬时云主机的资源配置进行预测;当发生瞬时云主机撤回事件时,基于Spark作业完成时间、额外开销以及瞬时云主机的资源配置进行预测。
本发明的实施方式还公开了一种非易失性存储介质,在存储介质上存储有作业性能预测程序,作业性能预测程序被计算机执行以实施作业性能预测方法,该程序包括:
作业相关参数获取指令,获取大数据分析作业的作业相关参数;
相关特征参数收集指令,收集作为计算资源的瞬时云主机的相关特征参数;
基本性能预测模型建立指令,基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
瞬时云主机撤回事件判断指令,基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件;
额外开销评估指令,当判定发生瞬时云主机撤回事件时,基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销;
作业完成时间预测指令,预测瞬时云主机的资源配置下的Spark作业完成时间,当没有发生瞬时云主机撤回事件时,基于Spark作业完成时间以及瞬时云主机的资源配置进行预测;当发生瞬时云主机撤回事件时,基于Spark作业完成时间、额外开销以及瞬时云主机的资源配置进行预测。
本发明的实施方式还公开了一种作业性能预测设备,其特征在于,包括:
存储器,存储有计算机可以执行的作业性能预测程序;以及
处理器,连接至存储器,并且被配置为执行作业性能预测程序以:
获取大数据分析作业的作业相关参数;
收集作为计算资源的瞬时云主机的相关特征参数;
基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,如果没有发生瞬时云主机撤回事件,则基于Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间;如果发生瞬时云主机撤回事件,则基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销,并基于额外开销、Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间。
本发明的实施方式还公开了一种作业性能预测系统,包括上述作业性能预测装置。
本发明通过建立Spark作业基本性能预测模型用于瞬时云主机没有发生撤回时的大数据分析作业性能预测,通过评估额外开销用于有瞬时云主机发生撤回时的大数据分析作业性能预测,从而提前预测某种瞬时云主机配置下的大数据分析作业的完成时间以判断是否满足性能需求;此外,在瞬时云主机发生撤回事件时,通过关键RDD数据检查备份机制减少云主机撤回导致的额外时间开销,帮助用户保证使用低价可撤回瞬时云主机进行大数据分析作业的性能,并减少使用云主机的成本预算。
进一步地,通过使用拓扑排序方法进行Stage块的划分,将Stage的阻塞和并行特性考虑到Spark作业基本性能预测模型中。
附图说明
图1为Spark大数据分析应用平台中Task的执行步骤图;
图2为根据本发明实施方式的建立Spark作业基本性能预测模型的流程示意图;
图3为根据本发明实施方式的Stage块划分示意图;
图4为根据本发明实施方式的关键RDD数据检查备份机制的示意图;
图5为根据本发明实施方式的面向瞬时云主机的大数据分析作业性能预测装置的结构示意图;
图6为根据本发明实施方式的面向瞬时云主机的大数据分析作业性能预测方法的流程示意图。
具体实施方式
在以下的叙述中,为了使读者更好地理解本申请而提出了许多技术细节。但是,本领域的普通技术人员可以理解,即使没有这些技术细节和基于以下各实施方式的种种变化和修改,也可以实现本申请各权利要求所要求保护的技术方案。
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。在本发明中,首先以Spark作为大数据平台应用代表,进行运行机制的分析并基于该分析建立没有瞬时云主机撤回事件发生时的Spark作业基本性能预测模型,然后在关键RDD数据检查备份机制下评估有瞬时云主机撤回事件发生时的额外开销,进而得到Spark作业整体性能预测模型。以Spark作为代表的DAG类型大数据分析应用平台,对大数据分析作业及任务的调度运行机制可以包括如下步骤:
(1)Spark以RDD(Resilient Distributed Datasets,弹性分布式数据集)作为计算模型,RDD可以看作是对各种数据计算模型的统一抽象,一个RDD数据可以划分为多个分区(Partition)。Spark应用程序进行各种RDD的转换(Transformation)操作计算,最后通过RDD的动作(Action)操作触发作业(Job)。
(2)作业提交后根据RDD之间的依赖关系构建DAG图(Directed Acyclic Graph,有向无环图),然后DAG图提交给DAGScheduler进行解析。
(3)DAGScheduler是面向阶段(Stage)的高层调度器,把DAG拆分成很多的任务(Task),每组的Task都是一个Stage,解析时以洗牌操作(Shuffle)为边界反向解析构建Stage,每当遇到Shuffle(如宽依赖)就会产生新的Stage,然后以TaskSet(TaskSet等同于Stage,是对Stage的一次封装)的形式提交给底层的TaskScheduler。DAGScheduler还可以监视因为Shuffle输出导致的失败,如果发现某个Stage失败则重新提交该Stage进行重计算。
(4)TaskScheduler接收到DAGScheduler发送的TaskSet后负责把任务集以Task的形式一一发送到集群Worker节点的执行器(Executor)中以多线程的方式运行。如果某个Task运行失败或RDD数据丢失,TaskScheduler要负责重新提交进行重计算。
此外,Spark中的Task详细执行过程如图1所示,每个Task需要从本地磁盘(即Shuffle本地读取)或远程磁盘(即Shuffle远程读取)并行读取其输入数据进行合并,再利用Task的计算函数对输入数据进行计算处理。最后,Task的输出数据将通过Shuffle写操作写入本地磁盘作为后续Stage的输入数据。
在上述步骤(3)中,Stage的产生是由于中间数据Shuffle,各个Stage之间根据依赖关系构成作业相关的DAG图。DAG图中间的Stage(入度等于祖先Stage的数量)必须要等到祖先Stage计算完成并Shuffle输出数据以后,才能读取到该Stage的Shuffle输入数据进行计算,也就意味着该Stage会被祖先Stage阻塞。对于DAG图中初始的Stage(入度等于0),它们没有祖先Stage,因此当计算资源足够的时候它们可以并行。
基于以上对Spark运行机制的分析,本发明根据Stage的阻塞和并行特性,建立一个基本性能模型用于预测稳定瞬时云主机(即使用的瞬时云主机在作业完成之前没有发生撤回的情况)中的Spark作业完成时间,其流程示意图如图2所示。
首先,在DAG图中使用拓扑排序的方法进行Stage块的划分,每次将入度为0的Stage划分成一个Stage块,然后删除已划分的Stage并更新入度,直到所有Stage都被划分为新的Stage块。如图3所示的DAG图就有如下划分:Stage1和Stage2为入度为0的Stage可以并行,分别划分为Stage块1和Stage块2,然后删除已经划分的Stage,并将依赖于它们的Stage的入度减1(Stage3的入度变为0,Stage4的入度变为1),接着Stage3划分为Stage块3(Stage4的入度变为0),最后Stage4被划分为Stage块4。
给定一个Job的Stage集合S={S1,S2,...,Sn}和对应的DAG图,本发明定义没有瞬时云主机撤回事件发生时Spark作业的完成时间Tjob由最后一个Stage块的完成时间表示,具体表示为:
其中Ai表示Stagei所依赖的祖先Stage集合,一个Stage的完成时间表示为:
基于图1对Task执行过程的分析,本发明取本地磁盘Shuffle读时间和远程磁盘Shuffle读时间的较大时间与Stage执行完后的Shuffle写本地时间求和表示一个Stage的所有Shuffle时间。对于每个Stagei,是Stage输出数据量与Shuffle输入数据量之比(即数据处理比),而表示本地读取的shuffle数据占Shuffle读取总数据的比例(即数据本地化率)。nins表示配置的云主机数量,和分别表示所配置云主机可用的磁盘以及网络I/O带宽。在Stage的计算执行时间中,Di表示其所有祖先Stage的Shuffle写入磁盘数据的总和,Ri表示在单个executor上计算执行Stagei的平均数据处理速率,∈i表示Stagei的并行因子,表示垃圾回收的平均速率。定义Di和∈i有如下表示:
其中对于没有任何祖先Stage(即)的初始Stage而言,用Ddfs表示输入数据从分布式文件系统中读取。∈表示一个云主机的CPU数量,Pi表示可以与Stagei并行执行的Stage数,当存在并行Stage的时候,共享CPU资源。
以上式(1)-(7)表示的Spark作业基本性能预测模型用于没有瞬时云主机撤回事件发生时的Spark作业完成时间预测。当有云主机发生撤回时,如Spark运行机制中步骤(2)和(3)所描述的由于撤回云主机上的RDD数据丢失和Task失败会导致正在被执行Stage重新提交。Spark内部有基于RDD依赖关系的容错机制,对于窄依赖,子RDD丢失需要重计算一个祖先RDD的所有分区;对宽依赖,丢失一个子RDD分区要重算的每个祖先RDD的所有分区数据,会有一部分数据对应的是未丢失的子RDD(即没有撤回云主机上的RDD)分区中的数据,因此产生冗余计算开销造成性能浪费。另外当DAG图中的依赖关系过长或瞬时云主机被频繁撤回时,重计算的开销特别大,将会影响作整体作业性能。
为了减少瞬时云主机撤回导致的额外性能开销,本发明采用关键RDD数据检查备份机制对DAG图中间的关键RDD数据进行容错,对于图4所示的DAG图,检查备份机制如下:
当该作业运行至Stage4时,突然发生瞬时云主机撤回事件,导致该Stage中的RDD4数据丢失,根据Spark自带的容错机制,其祖先RDD1和RDD3需要重计算,如果RDD3有分区数据在撤回云主机上,则RDD1也会发生重计算。本发明把满足以下条件之一的RDD作为关键RDD数据进行检查备份(使用persist(DISK_ONLY_2)方法将RDD数据缓存至本地和远端磁盘):1)Stage输出RDD数据量与Stage输入RDD数据量之比(即,)大于阈值rc(例如,10);2)Stage执行时间超过整个Job执行时间的百分比pc(例如10%)。将RDD3作为关键RDD数据备份以后,当发生瞬时云主机撤回事件,只需要从未被撤回的远端云主机节点读取备份的RDD3数据即可重计算恢复RDD4,从而减少RDD4的重计算花销。具体而言,两个容错系数rc和pc可以灵活配置以适用不同的大数据分析作业。
其中Tchk表示检查备份关键RDD数据的开销;Trst表示RDD数据恢复开销,其中MTTFt表示瞬时云主机类型t的平均无故障时间,本发明用估计在作业执行期间瞬时云主机被撤回的次数nrev,trep表示用一个瞬时云主机替换被撤回云主机作为新计算节点的时间开销,表示一个Stage的平均RDD数据恢复时间开销。Stagei的RDD恢复时间由下式给出:
其中如图4所示,如果Stage3的RDD3不是关键数据,则恢复Stage3需要重新计算,等于祖先Stage的最大重计算时间和该Stage的计算时间之和;如果RDD3是关键数据有检查备份,则RDD3直接从远程磁盘读取恢复。
上述式(8)-(10)表示在关键RDD数据检查备份机制下评估的有瞬时云主机撤回事件发生时的额外开销,将该瞬时云主机撤回导致的额外性能开销加入Spark作业的基本性能预测模型可以得到Spark作业整体性能预测模型,定义表示瞬时云主机的Spark作业完成时间,则:
其中αr是一个布尔值,指是否发生瞬时云主机撤回实例事件。
基于以上建立的模型方法,本发明将其中的参数分为两类:一类是作业相关参数,包括DAG参数(即,Ddfs,S,Ai,Pi,Schk)和数据处理参数(即,Ri,);第二类是瞬时云主机相关参数(即,MTTFt)。对于第一类参数,由于一个Spark作业的DAG图不因为数据集的改变而改变(即Spark作业内部的RDD依赖关系不变),因此本发明利用这一特性,先使用输入数据的一部分,例如10%,作为样例数据提交Spark作业预运行,然后通过分析预运行的事件日志获取作业相关参数;对于第二类参数,通过亚马逊CLI提供的相关命令获取瞬时云主机相关参数,其中对于MTTFt,可以基于获取的瞬时云主机相关参数中的历史价格数据得到。
综上所述,参考图5,给出根据本发明实施方式的面向瞬时云主机的大数据分析作业性能预测装置500,其包括作业相关参数获取模块501、相关特征参数收集模块502、基本性能预测模型建立模块503、瞬时云主机撤回事件判断模块504、额外开销评估模块505以及作业完成时间预测模块506。图6为该预测装置进行大数据分析作业性能预测的方法流程图,具体包括以下步骤:
步骤601:作业相关参数获取模块501获取大数据分析作业的作业相关参数,具体地,可以根据作业提交历史记录判断是否已经提交过大数据分析作业,若已经提交过,则从存储器中获取先前已经存储的作业相关参数;若没有提交过,则将大数据分析作业提交到带有关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析作业预运行产生的事件日志以获取作业相关参数;其中,根据作业提交历史记录判断是否已经提交过大数据分析作业是通过比较提交作业jar包的校验和来实现的,并且预运行时输入数据可以为实际数据的一部分,例如10%,并且可以使用单节点进行作业预运行。
相关特征参数收集模块502收集作为计算资源的瞬时云主机的相关特征参数;
步骤602:基本性能预测模型建立模块503基于步骤601获取的作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
步骤603:瞬时云主机撤回事件判断模块504基于步骤601收集的瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,即判断MTTFt是否小于Tjob,如果发生撤回,即MTTFt小于Tjob,则进入步骤604,如果MTTFt大于Tjob,则进入步骤605;
步骤604:额外开销评估模块505评估瞬时云主机撤回事件导致的额外开销,包括检查备份关键RDD数据的开销和恢复丢失RDD数据的重计算开销;
步骤605:作业完成时间预测模块506预测某种瞬时云主机资源配置下的Spark作业完成时间,当没有发生瞬时云主机撤回事件时,基于步骤602中的Spark作业完成时间以及瞬时云主机的资源配置进行预测,当发生瞬时云主机撤回事件时,基于步骤602中的Spark作业完成时间、步骤604中的额外开销以及瞬时云主机的资源配置进行预测。
本发明的实施方式还公开了一种非易失性存储介质,在存储介质上存储有面向瞬时云主机的大数据分析作业性能预测的程序,面向瞬时云主机的大数据分析作业性能预测的程序被计算机执行以实施面向瞬时云主机的大数据分析作业性能预测的方法,该程序包括:
作业相关参数获取指令,获取大数据分析作业的作业相关参数;
相关特征参数收集指令,收集作为计算资源的瞬时云主机的相关特征参数;
基本性能预测模型建立指令,基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
瞬时云主机撤回事件判断指令,基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件;
额外开销评估指令,当判定发生瞬时云主机撤回事件时,基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销;
作业完成时间预测指令,预测瞬时云主机的资源配置下的Spark作业完成时间,当没有发生瞬时云主机撤回事件时,基于Spark作业完成时间以及瞬时云主机的资源配置进行预测;当发生瞬时云主机撤回事件时,基于Spark作业完成时间、额外开销以及瞬时云主机的资源配置进行预测。
本发明的实施方式还公开了一种面向瞬时云主机的大数据分析作业性能预测设备,包括:
存储器,存储有计算机可以执行的面向瞬时云主机的大数据分析作业性能预测的程序;以及
处理器,连接至存储器,并且被配置为执行面向瞬时云主机的大数据分析作业性能预测的程序以:
获取大数据分析作业的作业相关参数;
收集作为计算资源的瞬时云主机的相关特征参数;
基于作业相关参数以及瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
基于瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,如果没有发生瞬时云主机撤回事件,则基于Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间;如果发生瞬时云主机撤回事件,则基于关键RDD数据检查备份机制评估瞬时云主机撤回事件导致的额外开销,并基于额外开销、Spark作业完成时间以及瞬时云主机的资源配置预测该资源配置下的Spark作业完成时间。
本发明的实施方式还公开了一种面向瞬时云主机的大数据分析作业性能预测系统,包括上述面向瞬时云主机的大数据分析作业性能预测装置。
实施例
为了验证本发明的可行性和准确性,遵循以上步骤在真实环境下修改开源Spark2.0.1版本源代码实现关键RDD检查备份机制,编写事件日志分析脚本、瞬时云主机参数收集脚本以及性能预测模型计算程序。修改后的Spark源码使用maven方法编译成二进制安装包,可使用瞬时云主机方便安装部署。
通过比较采用本发明所提出的性能预测方法预测某种瞬时云主机配置下的大数据分析作业的完成时间,并对比真实环境下的作业的实际运行时间来证明本发明方法的预测准确性。另外通过比较使用本发明的关键RDD数据检查容错机制和基于RDD依赖关系的容错机制分别运行大数据分析作业,以证明关键RDD数据检查机制可以减少瞬时云主机撤回导致的额外性能开销,并且同时以较高准确率预测作业性能。
本实施例基于亚马逊EC2的现货实例和谷歌GCE的抢占式实例作为瞬时云主机,对典型的大数据分析作业(如Grep,WordCount,ALS等)在不同资源配置(瞬时云主机类型和数量)下的作业性能进行预测。其中分别用亚马逊EC2和谷歌GCE的4种不同类型瞬时云主机作为计算资源,并使用瞬时云主机参数收集脚本收集得到不同瞬时云主机的资源参数如表1所示:
表1:瞬时云主机参数
在亚马逊EC2和谷歌GCE的瞬时云主机上分别对WordCount,Grep和ALS三种典型的Spark大数据分析作业进行性能预测,将输入数据的10%作为样例数据在单个节点预运行大数据作业,使用日志分析脚本分析预运行的事件日志,得到作业DAG图相关参数和数据处理相关参数,各参数值如表2所示:
表2:不同作业特定参数
使用亚马逊EC2的三种不同数量的m4.xlarge类型瞬时云主机作为资源配置,使用本发明提出的基本Spark作业性能预测模型对Grep的作业完成时间进行预测,并测量实际瞬时云主机配置下的作业真实完成时间,比较计算预测误差((预测值-真实值)/真实值)。这种情况没有瞬时云主机发生撤回,测量结果如表3所示:
表3:Grep在不同数量m4.xlarge中的作业性能预测
在谷歌GCE的n1-highmem-2类型瞬时云主机上运行WordCount时,可以首先使用本发明的性能预测方法计算满足不同的性能目标所需要的该类型瞬时云主机数量。然后测量真实环境配置下的作业完成时间,对比性能目标看是否满足需求,测量结果如表4所示:
表4:云主机撤回时的WordCount作业性能预测
通过以上实验证明了本发明性能预测方法的有效性和准确性,可以在进行大数据分析作业之前,根据需要的目标完成时间使用性能预测模型计算得到满足该性能目标的瞬时云主机数量,从而以最合适的云主机资源配置完成大数据分析作业,在满足性能目标的同时能够帮助用户节省成本预算。
为了验证本发明所提出的关键RDD数据检查备份机制的有效性,使用本发明的关键RDD数据检查机制对中间数据进行容错备份,测量当瞬时云主机发生撤回时的性能,并和基于RDD依赖关系容错时的作业性能对比,以验证本发明的检查机制有效性。测量结果表5所示:
表5:关键RDD数据容错和基于RDD依赖关系容错性能对比
通过以上实验数据可以证明当有瞬时云主机发生撤回时,使用本发明的关键RDD数据检查机制相比使用基于RDD依赖关系容错可以减少瞬时云主机撤回导致的额外开销,节省16.08%的时间完成大数据分析作业。
Claims (11)
1.一种作业性能预测方法,其特征在于,所述方法包括:
获取大数据分析作业的作业相关参数;
收集作为计算资源的瞬时云主机的相关特征参数;
基于所述作业相关参数以及所述瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
基于所述瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,如果没有发生所述瞬时云主机撤回事件,则基于所述Spark作业完成时间以及所述瞬时云主机的资源配置预测所述资源配置下的Spark作业完成时间;如果发生所述瞬时云主机撤回事件,则基于关键RDD数据检查备份机制评估所述瞬时云主机撤回事件导致的额外开销,并基于所述额外开销、所述Spark作业完成时间以及所述瞬时云主机的所述资源配置预测所述资源配置下的Spark作业完成时间;
获取所述作业相关参数包括:
根据作业提交历史记录判断是否已经提交过所述大数据分析作业,若已经提交过,则从存储器中获取存储的所述作业相关参数;若没有提交过,则将所述大数据分析作业提交到带有所述关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析所述作业预运行产生的事件日志以获取所述作业相关参数;
所述关键RDD数据检查备份机制将满足以下任意一个条件的RDD作为关键RDD数据进行检查备份:
Stage输出RDD数据量与Stage输入RDD数据量之比大于第一阈值;
Stage执行时间与整个作业执行时间的百分比超过第二阈值。
3.根据权利要求1所述的方法,其特征在于,建立所述Spark作业基本性能预测模型包括通过拓扑排序的方法进行Stage块的划分,将入度为0的Stage划分为一个所述Stage块。
5.根据权利要求2所述的方法,其特征在于,判断在作业完成之前是否发生瞬时云主机撤回事件是通过比较基于所述历史价格数据获得的瞬时云主机的平均无故障时间MTTF与所述Spark作业完成时间进行的,当所述平均无故障时间MTTF小于所述Spark作业完成时间时,判定发生所述瞬时云主机撤回事件,当所述平均无故障时间MTTF大于所述Spark作业完成时间时,判定不发生所述瞬时云主机撤回事件。
6.根据权利要求1所述的方法,其特征在于,所述瞬时云主机撤回事件导致的额外开销包括检查备份关键RDD数据的开销Tchk和恢复丢失RDD数据的重计算开销Trst。
7.根据权利要求1所述的方法,其特征在于,提交大数据分析作业时输入数据仅为实际数据的一部分,并且使用单节点进行所述作业预运行。
8.一种作业性能预测装置,其特征在于,所述装置包括:
作业相关参数获取模块,所述作业相关参数获取模块获取大数据作业的作业相关参数;获取所述作业相关参数包括:
根据作业提交历史记录判断是否已经提交过所述大数据分析作业,若已经提交过,则从存储器中获取存储的所述作业相关参数;若没有提交过,则将所述大数据分析作业提交到带有关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析所述作业预运行产生的事件日志以获取所述作业相关参数;
相关特征参数收集模块,所述相关特征参数收集模块收集作为计算资源的瞬时云主机的相关特征参数;
基本性能预测模型建立模块,所述基本性能预测模型建立模块基于所述作业相关参数以及所述瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
瞬时云主机撤回事件判断模块,所述瞬时云主机撤回事件判断模块基于所述瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件;
额外开销评估模块,当所述瞬时云主机撤回事件判断模块判定发生所述瞬时云主机撤回事件时,所述额外开销评估模块基于所述关键RDD数据检查备份机制评估所述瞬时云主机撤回事件导致的额外开销;所述关键RDD数据检查备份机制将满足以下任意一个条件的RDD作为关键RDD数据进行检查备份:
Stage输出RDD数据量与Stage输入RDD数据量之比大于第一阈值;
Stage执行时间与整个作业执行时间的百分比超过第二阈值;
作业完成时间预测模块,所述作业完成时间预测模块预测所述瞬时云主机的资源配置下的Spark作业完成时间,当没有发生所述瞬时云主机撤回事件时,基于所述Spark作业完成时间以及所述瞬时云主机的所述资源配置进行预测;当发生所述瞬时云主机撤回事件时,基于所述Spark作业完成时间、所述额外开销以及所述瞬时云主机的所述资源配置进行预测。
9.一种非易失性存储介质,其特征在于,在所述存储介质上存储有作业性能预测程序,所述作业性能预测程序被计算机执行以实施作业性能预测方法,所述程序包括:
作业相关参数获取指令,获取大数据作业的作业相关参数;获取所述作业相关参数包括:
根据作业提交历史记录判断是否已经提交过所述大数据分析作业,若已经提交过,则从存储器中获取存储的所述作业相关参数;若没有提交过,则将所述大数据分析作业提交到带有关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析所述作业预运行产生的事件日志以获取所述作业相关参数;
相关特征参数收集指令,收集作为计算资源的瞬时云主机的相关特征参数;
基本性能预测模型建立指令,基于所述作业相关参数以及所述瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
瞬时云主机撤回事件判断指令,基于所述瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件;
额外开销评估指令,当判定发生所述瞬时云主机撤回事件时,基于所述关键RDD数据检查备份机制评估所述瞬时云主机撤回事件导致的额外开销;所述关键RDD数据检查备份机制将满足以下任意一个条件的RDD作为关键RDD数据进行检查备份:
Stage输出RDD数据量与Stage输入RDD数据量之比大于第一阈值;
Stage执行时间与整个作业执行时间的百分比超过第二阈值;
作业完成时间预测指令,预测所述瞬时云主机的资源配置下的Spark作业完成时间,当没有发生所述瞬时云主机撤回事件时,基于所述Spark作业完成时间以及所述瞬时云主机的所述资源配置进行预测;当发生所述瞬时云主机撤回事件时,基于所述Spark作业完成时间、所述额外开销以及所述瞬时云主机的所述资源配置进行预测。
10.一种作业性能预测设备,其特征在于,包括:
存储器,存储有计算机可以执行的作业性能预测程序;以及
处理器,连接至所述存储器,并且被配置为执行所述作业性能预测程序以:
获取大数据作业的作业相关参数;获取所述作业相关参数包括:
根据作业提交历史记录判断是否已经提交过所述大数据分析作业,若已经提交过,则从存储器中获取存储的所述作业相关参数;若没有提交过,则将所述大数据分析作业提交到带有关键RDD数据检查备份机制的Spark集群进行作业预运行,并分析所述作业预运行产生的事件日志以获取所述作业相关参数;
收集作为计算资源的瞬时云主机的相关特征参数;
基于所述作业相关参数以及所述瞬时云主机的相关特征参数,建立Spark作业基本性能预测模型并得到Spark作业完成时间;
基于所述瞬时云主机的相关特征参数,判断在作业完成之前是否发生瞬时云主机撤回事件,如果没有发生所述瞬时云主机撤回事件,则基于所述Spark作业完成时间以及所述瞬时云主机的资源配置预测所述资源配置下的Spark作业完成时间;如果发生所述瞬时云主机撤回事件,则基于所述关键RDD数据检查备份机制评估所述瞬时云主机撤回事件导致的额外开销,并基于所述额外开销、所述Spark作业完成时间以及所述瞬时云主机的所述资源配置预测所述资源配置下的Spark作业完成时间;
所述关键RDD数据检查备份机制将满足以下任意一个条件的RDD作为关键RDD数据进行检查备份:
Stage输出RDD数据量与Stage输入RDD数据量之比大于第一阈值;
Stage执行时间与整个作业执行时间的百分比超过第二阈值。
11.一种作业性能预测系统,其特征在于,包括权利要求8所述的作业性能预测装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810443167.3A CN108647137B (zh) | 2018-05-10 | 2018-05-10 | 一种作业性能预测方法、装置、介质、设备及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810443167.3A CN108647137B (zh) | 2018-05-10 | 2018-05-10 | 一种作业性能预测方法、装置、介质、设备及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108647137A CN108647137A (zh) | 2018-10-12 |
CN108647137B true CN108647137B (zh) | 2020-12-22 |
Family
ID=63754300
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810443167.3A Active CN108647137B (zh) | 2018-05-10 | 2018-05-10 | 一种作业性能预测方法、装置、介质、设备及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108647137B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110008013B (zh) * | 2019-03-28 | 2023-08-04 | 东南大学 | 一种最小化作业完工时间的Spark任务分配方法 |
CN110990135B (zh) * | 2019-11-28 | 2023-05-12 | 中国人民解放军国防科技大学 | 基于深度迁移学习的Spark作业时间预测方法和装置 |
CN111831417A (zh) * | 2020-07-14 | 2020-10-27 | 华东师范大学 | 一种基于延迟调度技术的大数据分析作业性能优化装置 |
CN111831418A (zh) * | 2020-07-14 | 2020-10-27 | 华东师范大学 | 一种基于延迟调度技术的大数据分析作业性能优化方法 |
CN112287603A (zh) * | 2020-10-29 | 2021-01-29 | 上海淇玥信息技术有限公司 | 一种基于机器学习的预测模型构建方法、装置和电子设备 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
JP2015170085A (ja) * | 2014-03-06 | 2015-09-28 | 株式会社日立ソリューションズ | ジョブ実行時間予測方法およびジョブ管理装置 |
CN106168912A (zh) * | 2016-07-28 | 2016-11-30 | 重庆邮电大学 | 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 |
-
2018
- 2018-05-10 CN CN201810443167.3A patent/CN108647137B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101697141A (zh) * | 2009-10-30 | 2010-04-21 | 清华大学 | 网格中基于历史数据建模的作业性能预测方法 |
JP2015170085A (ja) * | 2014-03-06 | 2015-09-28 | 株式会社日立ソリューションズ | ジョブ実行時間予測方法およびジョブ管理装置 |
CN106168912A (zh) * | 2016-07-28 | 2016-11-30 | 重庆邮电大学 | 一种Hadoop大数据平台中基于备份任务运行时间估计的调度方法 |
Non-Patent Citations (2)
Title |
---|
"基于RDD关键度的Spark检查点管理策略";英昌甜 等;《计算机研究与发展》;20171231;第54卷(第12期);第2858-2872页 * |
"基于细粒度监控的Spark优化研究";康海蒙;《中国优秀硕士学位论文全文数据库信息科技辑》;20170215(第2期);第I138-2494页 * |
Also Published As
Publication number | Publication date |
---|---|
CN108647137A (zh) | 2018-10-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108647137B (zh) | 一种作业性能预测方法、装置、介质、设备及系统 | |
US9329981B2 (en) | Testing program, testing method, and testing device | |
US7864679B2 (en) | System utilization rate managing apparatus and system utilization rate managing method to be employed for it, and its program | |
US8887165B2 (en) | Real time system task configuration optimization system for multi-core processors, and method and program | |
US20170220944A1 (en) | Best trade-off point on an elbow curve for optimal resource provisioning and performance efficiency | |
Han et al. | Checkpointing workflows for fail-stop errors | |
US9396095B2 (en) | Software verification | |
CN114090537A (zh) | 卫星在轨状态的实时分析方法、装置、系统、设备及介质 | |
KR20150118963A (ko) | 큐 모니터링 및 시각화 | |
US20140215483A1 (en) | Resource-usage totalizing method, and resource-usage totalizing device | |
Wang et al. | Design and implementation of an analytical framework for interference aware job scheduling on apache spark platform | |
US11144357B2 (en) | Selecting hardware accelerators based on score | |
CN116302574B (zh) | 一种基于MapReduce的并发处理方法 | |
CN114519006A (zh) | 测试方法、装置、设备以及存储介质 | |
Koch et al. | SMiPE: estimating the progress of recurring iterative distributed dataflows | |
GB2504496A (en) | Removing code instrumentation based on the comparison between collected performance data and a threshold | |
Banicescu et al. | Towards the robustness of dynamic loop scheduling on large-scale heterogeneous distributed systems | |
US11151121B2 (en) | Selective diagnostics for computing systems | |
CN117093335A (zh) | 分布式存储系统的任务调度方法及装置 | |
Dohi et al. | Software rejuvenation: modeling and applications | |
CN114185656A (zh) | 一种测试任务处理方法、装置、设备及存储介质 | |
CN113269554A (zh) | 数据对比方法、系统以及存储介质 | |
KR101694307B1 (ko) | 디스크 캐쉬 효과를 극대화하는 워크플로우 작업 스케줄링 장치 및 방법 | |
Perez et al. | Bottleneck-aware task scheduling based on per-stage and multi-ml profiling | |
US20230409379A1 (en) | Information processing device and job scheduling method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |