Mapreduce任务调度中的任务时间评估
在异构环境中Mapreduce作业的运行时间预测或者评估是基于deadline的调度中比较关键的一部分。 在文献[1-2]中调度依据文件的剩余时间。两种方法都不同,文献[1]假设Hadoop系统运行于一个同构的环境中且任务的执行时间与输入数据成线性关系,对样本数据进行求解,得到程序运行的平均时间。因此,作业的运行时间可以是:
T =s*c/n 其中s是作业输入数据的大小,c是数据的单元处理时间,n是任务的个数。这种方法优势在于简单易用,但劣势也比较明显:首先,不能适应于异构环境的需要;其次,在样本数据不分布不均的情况下数据的单元处理时间会很不正确。
LATE[3]算法中所采用的时间预测公式是:
其中 ,T为任务当前所使用的时间;ProgressScore为Hadoop默认的任务进度值,ProgressRate=ProgressScore/T(T为执行时间)。
在文献[2]中提到了在动态环境中的作业时间计算方法。
定义:表示作业m的第i个任务;