1.一种资源不均衡Spark环境下的任务调度优化方法,其特征在于,包括如下步骤:(1)筛选影响节点优先级的静态因素和动态因素,建立节点优先级评价指标体系,并计算出各指标的权值;
(2)在集群中部署分布式集群资源监控系统Ganglia,集群启动时,触发监控启动心跳;
(3)当集群建立或有新节点加入集群时,Master节点计算各个Slave节点的静态性能指标值或新加入节点的静态性能指标值;
(4)Master节点计算各个Slave节点的动态性能指标值;
(5)Master节点计算每个Slave节点的优先级;具体为:Master节点使用步骤(3)和(4)得到的各Slave节点的静态指标值Si和动态指标值Di,使用公式(3)计算各个节点的优先级:Pi=αDi+βSi (3)
其中α和β分别是Di和Si的权值,使用层次分析法计算得到;
(6)Master节点读取各Slave节点的优先级,并根据各Slave节点优先级的值对节点进行排序;
(7)Master节点根据排序结果选择Slave节点,对所选择的节点进行遍历,将需要运行的任务分配给本地化程度最高的Slave节点;具体如下:(7.1)Master节点依次遍历按节点优先级大小排序的节点集合WorkerOffer;
(7.2)在每个节点轮流遍历任务集合中的每个任务,循环执行步骤(7.3);
(7.3)获取任务在当前节点上的本地化参数;如果参数是最大的,则执行步骤(7.4),否则执行步骤(7.2);
(7.4)分配该Task给该节点;
(8)若任务执行完毕,返回任务执行结果;否则返回步骤(3)。
2.根据权利要求1所述的一种资源不均衡Spark环境下的任务调度优化方法,其特征在于:所述步骤(1)具体如下:
(1.1)使用主成分分析法确定节点的静态因素为节点的CPU速度、CPU核数、内存大小和磁盘容量;
(1.2)使用主成分分析法确定节点的动态因素为节点的CPU剩余率、内存剩余率、磁盘容量剩余率以及CPU负载;
(1.3)基于步骤(1.1)和(1.2)的分析结果建立节点优先级评价指标体系,并对各指标的重要性进行评估;
(1.4)使用层次分析法得到各静态因素、动态因素的权值。
3.根据权利要求1所述的一种资源不均衡Spark环境下的任务调度优化方法,其特征在于:所述步骤(3)具体如下:
(3.1)各个Slave节点使用Ganglia集群资源监控系统获取自己的静态因素值,包括CPU速度scpu_speed、CPU核数scpu_num、内存大小smem和磁盘容量sdisk;
(3.2)Slave节点使用单播将数据汇集到Master节点;
(3.3)Master节点使用公式(1)计算出第i个Slave节点的静态性能指标Si,i=1 to h,h为集群中slave节点的个数;
其中n1,n2,n3,n4分别为CPU速度、CPU核数、内存大小和磁盘容量的权值,并且n1+n2+n3+n4=1;n1,n2,n3,n4的值使用层次分析法计算得到。
4.根据权利要求1所述的一种资源不均衡Spark环境下的任务调度优化方法,其特征在于:所述步骤(4)具体如下:
(4.1)各个Slave节点按照Ganglia集群资源监控系统配置文件给定的周期定时获取自己的动态因素值,包括节点CPU剩余率dcpu、内存剩余率dmem、磁盘容量剩余率ddisk以及CPU负载dlength;
(4.2)Slave节点使用单播将数据汇集到Master节点;
(4.3)Master节点使用公式(2)计算出第i个Slave节点的动态性能指标Di,i=1 to h,h为集群中slave节点的个数;
其中,m1,m2,m3,m4分别表示CPU剩余率、内存剩余率、磁盘容量剩余率以及CPU负载的权值,并且m1+m2+m3+m4=1;m1,m2,m3,m4的值使用层次分析法计算得到。