一种高效的多维度算法调度方法、任务服务器与流程

文档序号:15492112发布日期:2018-09-21 20:49阅读:971来源:国知局

本发明属于中央资源管理技术领域,尤其涉及一种高效的多维度算法调度方法、任务服务器。



背景技术:

目前,业内常用的现有技术是这样的:大数据的分布式调度是在进行数据etl过程中起到了总体的承上启下的角色,整个数据的生产、交付、消费都会贯穿其中,用户作业提交后,系统会将其划分为多个任务,通过调度算法策略将任务分配到哪个任务服务器上来执行。fifo是hadoop默认的调度器,其优点是算法简单,便于实现,其缺点为仅以作业进入队列的先后顺序作为调度依据,无法针对作业的不同需求进行差异化调度.spark提出一种公平调度(fairscheduler),在多用户共享集群的环境下,最大化地保证系统中的作业能平均分配到集群的资源.公平调度器能最大限度地满足公平性原则,但无法满足数据本地性要求。还有一种延迟调度(delayscheduling)算法,为队首作业设置延迟等待时间,当空闲节点出现时,如果此节点包含队首作业所需数据,则立刻执行队首作业,否则先调度其它作业,在队首作业的等待时间超过阈值时,立即执行队首作业.延迟调度策略能够很好地做到公平性与数据本地性之间的均衡,延迟调度的等待时间是通过配置文件进行静态设置的,无法满足集群负载动态变化的情况。

综上所述,现有技术存在的问题是:

(1)fifo以任务进入队列的先后顺序作为调度依据,按照任务提交或进程变为就绪状态的先后次序,分派cpu;当前任务或进程占用cpu,直到执行完或阻塞,才出让cpu(非抢占方式)。在任务或进程唤醒后(如i/o完成),并不立即恢复执行,通常等到当前任务或进程出让cpu。最简单的算法。比较有利于长作业,而不利于短作业。有利于cpu繁忙的作业,而不利于i/o繁忙的作业。无法针对作业的不同需求进行差异化调度。

(2)公平调度算法可以保证任务的平均分配,但是对于每个任务的差异性无法满足调度的差异性,也会导致资源使用不合理的问题。

(3)延迟调度算法是通过配置文件进行静态设置,对于每个任务的差异性是会实时发生变化的,也无法满足集群负载动态变化的情况。

解决上述技术问题的难度和意义:

上述的几种公共的调度算法都是基于同类型任务的调度,不适用与每个任务有差异的调度,任务的差异需要实时的反馈机制,通过反馈机制更合理的分配计算资源,这就需要一种新型的调度算法来高效的分配计算资源。



技术实现要素:

针对现有技术存在的问题,本发明提供了一种高效的多维度算法调度方法、任务服务器。

本发明是这样实现的,一种高效的多维度算法调度方法,所述高效的多维度算法调度方法使用任务数和集群节点状态来描述集群中节点的负载情况和作业相关的数据本地性情况;通过任务的执行时间和数据长度描述调度前后节点和作业的变化,利用值迭代策略求解算法求解最优调度策略,动态调节作业数据本地性与作业响应时间。

进一步,所述高效的多维度算法调度方法在运行数据处理的集群中,将选择一个节点作为master,该节点是控制集群任务的核心部件,完成任务调度与监控功能,根据当前集群负载状态和不同任务的数据本地性需求,求取一个最优调度策略;

通过以下指标智能决策建立的数学模型:t:任务的执行时间;n:每个节点的任务数;s:每个节点服务器状态;l:每条数据的长度;c:阈值控制。

进一步,建立tnsl的形式化描述模型具体包括:

t:任务执行时间用来描述线程执行函数的时间,单次任务执行的时间表示:

li:每条数据的单词大小;

所有数据的单词总大小;

tt:所有数据处理的总时间;

f(t):单条数据处理的时间。

进一步,n:任务种类用来描述每个处理节点上分配的处理任务,根据各个节点上分配的任务种类,实时调度各节点下次分配的任务;

每次任务种类的计算公式为:

n=[n1,n2,n2,....ni];

n:单机的任务数;

i:多少台单机的任务数。

进一步,s:集群中各个节点的状态,通过节点状态的不同,自动计算分配到该节点的数据量;集群各节点分为三种状态,1为完全可用,表示空闲节点;0表示节点满载或者宕机不可用;0至1之间表示节点有任务在跑,但是没有满载,仍然分配任务:

s:节点状态;

∫t:当前执行的时间;

∫txl′:上一次执行的时间。

进一步,l:需要处理的每条数据的长度,长度以数据的单词为准,对于长度比较大的数据多分配计算资源,长度小的则相反;

l=l(word);

l表示数据大小;

i表示单词的数量;

word表示单词。

进一步,c:任务数阈值控制:

c=x;

x:根据实际数据量调整。

进一步,所述高效的多维度算法调度方法的求解目标根据当前节点与任务的状态计算最优策略,使得大数据平台下通过多维度指标实时调度:

根据指标每个任务占用的时间为:

g(f(t))=l×f(t);

master在调度分配上使用下面的公式计算出各个节点需要分配的任务数:

本发明的另一目的在于提供一种应用所述高效的多维度算法调度方法的任务服务器。

综上所述,本发明的优点及积极效果为:tnslc(executiontime、numberoftasks、nodestatus、lengthofdata、thresholdcontrol)调度策略适用于大数据集群中处理环节复杂的环境,当处理的任务执行时间不一致时,可以通过tnsl策略获得最优的调度策略。测试条件,服务机器集群配置:5节点,每个节点8核cpu,64g内存,1t硬盘;综合比较每小时处理文章量(篇)的效率如下:

综上,同等机器环境和资源情况下,本发明的算法资源率更高,处理速度更快。

附图说明

图1是本发明实施例提供的高效的多维度算法调度方法流程图。

图2是本发明实施例提供的建立tnsl的形式化描述模型示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

如图1所示,本发明实施例提供的高效的多维度算法调度方法包括以下步骤:

s101:使用任务数和集群节点状态来描述集群中节点的负载情况和作业相关的数据本地性情况;

s102:通过任务的执行时间和数据长度描述调度前后节点和作业的变化,利用值迭代策略求解算法求解最优调度策略,动态调节作业数据本地性与作业响应时间,达到最高效调度的效果。

下面结合附图对本发明的应用原理作进一步的描述。

1.1tnslc的决策过程

tnslc调度是通过以下指标智能决策建立的数学模型:

1)t:任务的执行时间;

2)n:每个节点的任务数;

3)s:每个节点服务器状态;

4)l:每条数据的长度;

5)c:阈值控制;

tnslc使用任务数和集群节点的状态对当前集群与任务状态进行描述,通过数据长度和执行时间对任务调度策略进行评估,使用值迭代算法进行最优策略求解,获得最优的任务调度策略.

1.2算法建模

在运行数据处理的集群中,将选择一个节点作为master,该节点是控制集群任务的核心部件,用来完成任务调度与监控功能,根据当前集群负载状态和不同任务的数据本地性需求,求取一个最优调度策略,其本质是一个最优决策求解问题,首要任务是建立tnsl的形式化描述模型.如图2所示:

1.2.1t:任务执行时间用来描述线程执行函数的时间,有的函数简单或者是本地处理,可以快速响应;有的函数复杂或者是调用远程api,响应速度会慢很多,但是一个完整的数据处理过程是依赖多种函数处理的,所以线程执行时间的快慢决定着调度分配的资源;

单次任务执行的时间表示:

li:每条数据的单词大小;

所有数据的单词总大小;

tt:所有数据处理的总时间;

f(t):单条数据处理的时间;

1.2.2n:任务种类用来描述每个处理节点上分配的处理任务,根据各个节点上分配的任务种类,实时调度各节点下次分配的任务;

每次任务种类的计算公式为:

n=[n1,n2,n2,....ni];

n:单机的任务数;

i:多少台单机的任务数;

1.2.3s:集群中各个节点的状态,通过节点状态的不同,自动计算可分配到该节点的数据量;

集群各节点分为三种状态,1为完全可用,表示空闲节点;0表示节点满载或者宕机不可用;0至1之间表示节点有任务在跑,但是没有满载,仍然可以分配任务:

s:节点状态;

∫t:当前执行的时间;

∫txl′:上一次执行的时间;

1.2.4l:需要处理的每条数据的长度,长度以数据的单词为准,对于长度比较大的数据可以多分配一些计算资源,长度小的则相反,可以更有效的利用节点处理的能力;

l=i(word);

l表示数据大小;

i表示单词的数量;

word表示单词;

1.2.5c:任务数阈值控制,可以针对产生数据倾斜的任务设置阈值,合理的控制和协调任务数量,最大限度的减少数据倾斜问题,保证资源的合理利用和分配。

c=x;

x:根据实际数据量调整;

1.3求解算法流程

tnsl调度算法求解目标即根据当前节点与任务的状态计算最优策略,目标是使得大数据平台下通过多维度指标实时调度,更高效的处理复杂逻辑运算,本专利使用应用最为广泛的值迭代求解算法求解。

根据以上的指标每个任务占用的时间为:

g(f(t))=lxf(t);

master在调度分配上使用下面的公式可以计算出各个节点需要分配的任务数:

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1