一种充分利用网络计算资源的多租户大数据框架调度方法与流程

文档序号:18142177发布日期:2019-07-10 11:11阅读:126来源:国知局
一种充分利用网络计算资源的多租户大数据框架调度方法与流程

本发明属于多租户大数据调度技术领域,具体涉及一种充分利用网络计算资源的多租户大数据框架调度方法。



背景技术:

为了降低数据分析请求的时延,集群管理者经常依赖内存中的大数据并行处理框架,比如in-memorymapreduce、spark。这些大数据并行处理框架中的工作(job)被定义为一个多阶段(stage)的有向无环图。图中的边定义了两个阶段间的依赖关系。每个阶段中有多个任务(task),任务会在集群分配的资源中执行。每个阶段的完成时间被定义为该阶段最后结束的任务的时间。因此,减小工作的最小完成时间,就是减小该工作最后阶段最后任务的完成时间。

然而,哪一个任务在该阶段最后执行是无法提前确定的。为一个任务分配资源的同时,延长了该阶段其余任务的等待部分。此外,网络输入部分的优先级设定,可能影响到输入部分的持续时间。总的来说,任务调度和网络优先级设置会直接影响每个阶段的执行时间,最终影响工作的完成时间。

上述的每个任务分为4个部分(phase)。第一部分是准入部分,即等待任务所在阶段的开始。当工作开始时,该工作的所有任务处于该部分,当该任务所在阶段开始执行时,准入部分结束。第二部分是等待部分,顾名思义,该部分是等待集群分配资源,获取集群资源后,该部分结束。第三部分是读数据部分,任务通过网络或者内存读取该任务必须的数据,读取完成后,该部分结束。最后一部分是计算部分,读取数据后,会有一个计算的过程,计算完成后,该部分结束,并且该任务结束。值得一提的是,给定运行资源,特定任务的计算部分的执行时间可以看作是定值。

为了充分利用计算网络资源,计算集群通常是多租户的。在工作运行前,管理员会设置用户/工作间的公平性策略,选择某一个用户/工作是公平性策略决定的,在公平性策略的基础上,缩短工作的完成时间的同时不可破坏管理员定义的策略。



技术实现要素:

本发明所要解决的技术问题是针对上述现有技术的不足,提供一种充分利用网络计算资源的多租户大数据框架调度方法,在遵循用户/工作公平性策略的同时,提升了集群的资源利用率,缩短了平均工作完成时间和尾工作完成时间。

为实现上述技术目的,本发明采取的技术方案为:

一种充分利用网络计算资源的多租户大数据框架调度方法,基于有限并行度的优先级网络传输模型,包括以下步骤:

s1:任务选择:首先判断某个任务是否有本地化读取数据的可能性;若有本地化的可能性,利用现有的本地化策略来进行任务挑选;若没有本地化的可能性,按照任务输入数据从大到小的顺序排序。

s2:资源空隙选择:挑选资源空隙时,有资源空隙的机器按照该机器总共的网络传输时间进行升序排序,然后进行进一步地判断;

s3:并行度控制:对于一个给定的资源空隙,调度器判断该机器上的网络并行度是否超过某一个阈值;若超过,任务将不能够放置在该机器的资源空隙上,若不超过,则可以放置;

s4:网络传输优先级设置:当有一个新的网络传输任务放置在某个机器上或者某个正在网络传输的任务结束网络传输时,该机器上的任务将根据公平性策略所定义的网络公平策略重新排序。

为优化上述技术方案,采取的具体措施还包括:

上述的步骤s4具体为:

对于工作内部的任务,按照关键路径原则,越大的任务优先级越高;

对于资源公平的公平性策略,按照最小工作优先的原则;

对于先入先出的公平性策略,按照严格的工作到达顺序区分优先级;

混合的公平性策略,先入先出队列中的第一个参加最小工作优先原则的排序中,其余任务不参与竞争。

本发明方法包括资源空隙变化运行模式和任务到达运行模式。

上述的资源空隙变化运行模式包括以下步骤:

1)根据公平性策略获取工作列表,并设置让出资源空隙标志位0;

2)依次选取工作列表的工作直到列表为空,列表为空后返回空;

3)利用任务选择模块选择其中一个任务;

4)若模块返回为空,让出资源空隙标志设为1,返回步骤2);

5)若模块选择的任务是本地化的,继续判断让出资源空隙标志,若标志为0,则直接返回该任务,若标志为1,则判断是否影响该机器的网络传输,不影响则返回该任务,影响则返回步骤2;

6)若模块选择的任务是非本地化的,则判断该任务是否能够放置在该机器上,若可以,则返回该任务;若不能,让出空隙标志设置为1,返回步骤2)。

上述的任务到达运行模式包括以下步骤:

1)任务机器映射为空;

2)机器按照数据传输时间排序,然后依次挑选机器;

3)若机器没有资源空隙,则判断下一个机器;

4)根据任务挑选选择任务;

5)若模块返回为空,则判断下一个机器;

6)若模块选择的任务是本地化的,查看该任务对应的工作是否是公平性策略返回工作列表的第一个,若是任务机器映射添加该任务和机器,并返回步骤2);若不是,进一步判断该任务是否会影响机器的网络传输,若不影响,任务机器映射添加该任务和机器,并返回步骤2);

7)若模块选择的任务是非本地化的,则判断该任务是否能够放置在该机器上,若可以,任务机器映射添加该任务和机器,更新机器上网络传输信息,并返回步骤2)。

本发明具有以下有益效果:

本发明首先针对现有网络传输抽象不够有效,导致任务的数据传输部分时间变长的缺陷,提出了有效且可预测的网络传输调度方法,提升了网络传输效率。

本发明针对现有调度算法未遵循公平性策略,导致优先级高的工作受到优先级低的工作的影响延时完成的缺陷,针对不同的优化场景做了处理,提高了资源利用率,缩短了工作的完成时间。

本发明在真实的大数据系统hadoop上进行了实现,有非常好的性能提升,验证了本发明方法可以提高资源利用率,并缩短了工作的完成时间。

附图说明

图1是利用网络仿真器在不同机器数目下,网络传输任务的数目和网络带宽占用率的关系。

图2是网络仿真器下pena在真实传输中的带宽率用率。

图3是两种违背公平性策略的实例。

图4是本发明方法在hadoop上实现的系统架构图。

具体实施方式

以下结合附图对本发明的实施例作进一步详细描述。

本发明的一种充分利用网络计算资源的多租户大数据框架调度方法,在各任务间利用严格优先级的带宽分配可以使网络变得高效且可预测。利用该特性,计算网络资源的联合调度问题可以转换为一个特殊的二维装箱问题。

理想的网络传输抽象有两个特点:1、任务间是需要区分优先级的;2、最高优先级的任务可以完全占用网络带宽。这样就可以准确预测出每一个任务的数据输入部分时间和计算部分消耗时间,从而把任务转化为在二维平面的箱子,把调度问题转换为二维装箱问题。

然而在实际情况下,即使最高优先级的任务也没办法独占网络带宽,这是由于有限数量的网络连接数和各端的网络拥塞导致的。因此理想的网络传输模型并不存在,pena是一个理想网络传输模型的妥协。图1中显示了不同机器数目下,正在进行网络传输任务数和网络占用率的关系图。可以看到,当只有1个网络传输任务时,只占用了网络带宽的85%(20个机器),并没有完全占用带宽。之后随着正在网络传输任务的数量增多,网络占用率逐渐上升,但是优先级越低的任务获取的网络带宽越小。因此很容易推测,当网络并行度达到某一个值时,网络将产生拥塞,优先级低的任务将无法获取网络带宽。值得注意的是,当网络传输的任务数为3时,带宽占用率可以达到95%,即很小的网络并行度就可以获取整个网络带宽。

本发明的网络传输模型pena即采用了有限并行度的优先级网络传输模型。在一般情况下,会有有限个进行网络传输的任务,这样可以保证带宽的占用率,并且任务间是有优先级区分的,可以保证网络传输的有效性及可预测性。图2表示了网络传输并行度为3的情况,三个相同大小的网络传输任务(reducer1-3)需要网络传输数据,三个任务的优先级依次降低。由图2可知,在0-0.5的时间区间内,reducer1占用了约75%的网络带宽,reducer2占用了约20%的网络带宽,reducer3几乎没有网络传输。之后reducer1完成,reducer2进行传输,最后是reducer3进行网络传输。此外,总带宽几乎维持在完全利用的状态,因此还是可以大致预测出需要传输数据的时间(传输总数据量/网络传输速率)。特别地,在预测时有一种特殊的情况是,blocking网络场景下,传输时间需要利用(跨机架的网络传输数据量/跨机架的网络传输速率)。

在这个有效且可预测的网络传输模型pena的基础上,进一步提出了本发明的一种充分利用网络计算资源的多租户大数据框架调度方法,即“推箱子(pushbox)”算法,进一步提高资源利用率,从而尽可能缩短工作的完成时间。在此期间,本发明解决了两个挑战:1、如何利用前人的智慧;2、如何遵循用户/工作的公平性策略。

“推箱子”的输入是一个工作列表,这个工作列表是公平性策略的输出,按照某个策略给所有正在运行的工作排序。“推箱子”的输出为某个任务对应的资源空隙及相对应的网络传输优先级。

一种充分利用网络计算资源的多租户大数据框架调度方法,包括以下步骤:

s1:任务选择:首先判断某个任务是否有本地化读取数据的可能性;若有本地化的可能性,利用现有的本地化策略来进行任务挑选;若没有本地化的可能性,按照任务输入数据从大到小的顺序排序。

s2:资源空隙选择:

挑选资源空隙时,有资源空隙的机器按照该机器总共的网络传输时间进行升序排序,然后进行进一步地判断。

s3:并行度控制:

对于一个给定的资源空隙,调度器需要去判断该机器上的网络是否拥塞,即判断网络并行度是否超过某一个阈值。如果超过,任务将不能够放置在该机器的资源空隙上,如果不超过,则可以放置。

s4:网络传输优先级设置:

当有一个新的网络传输任务放置在某个机器上或者某个正在网络传输的任务结束网络传输时,该机器上的任务将根据公平性策略所定义的网络公平策略重新排序。对于工作内部的任务,按照关键路径原则,越大的任务优先级越高。对于资源公平的公平性策略:按照最小工作优先的原则,值得注意的是,最小工作优先原则并没有违背资源公平,因为理想情况下,并没有更改工作的结束顺序。对于先入先出的公平性策略,按照严格的工作到达顺序区分优先级。至于混合的情况,先入先出队列中的第一个参加最小工作优先原则的排序中,其余任务不参与竞争。网络优先级的设置原则,导致该问题并不算是一个严格的二维装箱问题,因为任务的高优先级可能被抢占,这在上线运行的系统中非常常见,只要该抢占是符合系统管理员的公平性策略则是合理的。

在调度过程中,存在两种之前算法违背公平性原则的情况,如图3。

图3的(a)和(b)讲述的是:有两个hadoop的工作,其中一个在reduce阶段,另外的一个工作在map阶段。现在假设轮到reduce阶段的工作优先分配任务,然而,由于机器网络拥塞,并行度控制模块并不允许继续放置该任务,因此分配权交由map阶段的工作,如果该工作的map任务比较大的话,就会拖慢reduce阶段的工作,如图3(a)。这其实是有问题的,因为让出资源的工作的本意并不是让另外的工作影响自己的完成。因此,如果出现这种情况,需要判断让给的工作的任务大小是否合适,如果合适才进行放置,如图3(b),如果不合适,则延迟放置。

图3的(c)和(d)讲述的是现有的调度算法违背了fifo公平性策略,因为根据fifo的语义,之后到达的工作就应该后完成,然而现有的调度算法所使用的公平网络调度或者最小工作优先调度违反了该语义。该场景有两个工作,r1、r2和r3是工作1的任务,m1和r4是工作2的任务,工作2的大小小于工作1的大小。如图3(c),如果选择最小工作优先调度,工作2比工作1先完成,并且拖延了工作1的完成时间,这显然违背了fifo的语义。系统管理员的fifo策略,是希望后到达的工作2不影响工作1的前提下先完成或者在工作1完成后完成,如图3(d)所示。

结合系统管理员的意图,当为某个工作的任务分配了资源时,该任务就具备了可以使用网络的权利。然而,并行度控制模块可能影响该意图。针对下述场景:假设本发明的公平性策略是资源公平性策略,有个非常大的工作占满了集群的所有网络资源,此时有一个小的工作到来,系统希望给小的工作分配资源,小工作很快进入reduce阶段,然而由于网络并行度受限,所以该工作的reduce任务并不能执行,虽然网络规则是小工作优先,但这种情况仍然拖慢了该工作的完成时间。

因此,本发明在资源公平性策略的前提下,会给小的工作特权,如果该工作的大小小于某个机器上最小的工作大小,调度算法仍然允许该任务的放置,因为在同等条件下,小的工作比大的工作更早完成,由此满足了系统管理员的意图。

实施例中,本发明和上述分析结合起来,给出下面两种模式的步骤,分别是资源空隙变动模式和任务到达模式。

资源空隙变动模式:

1)根据公平性策略获取工作列表,并设置让出资源空隙标志位0;

2)依次选取工作列表的工作直到列表为空,列表为空后返回空;

3)利用任务选择模块选择其中一个任务;

4)若模块返回为空,让出资源空隙标志设为1,返回步骤2);

5)若模块选择的任务是本地化的,继续判断让出资源空隙标志,若标志为0,则直接返回该任务,若标志为1,则判断是否影响该机器的网络传输,不影响则返回该任务,影响则返回步骤2;

6)若模块选择的任务是非本地化的,则判断该任务是否能够放置在该机器上,若可以,则返回该任务;若不能,让出空隙标志设置为1,返回步骤2)。

任务到达模式:

1)任务机器映射为空;

2)机器按照数据传输时间排序,然后依次挑选机器;

3)若机器没有资源空隙,则判断下一个机器;

4)根据任务挑选选择任务;

5)若模块返回为空,则判断下一个机器;

6)若模块选择的任务是本地化的,查看该任务对应的工作是否是公平性策略返回工作列表的第一个,若是任务机器映射添加该任务和机器,并返回步骤2);若不是,进一步判断该任务是否会影响机器的网络传输,若不影响,任务机器映射添加该任务和机器,并返回步骤2);

7)若模块选择的任务是非本地化的,则判断该任务是否能够放置在该机器上,若可以,任务机器映射添加该任务和机器,更新机器上网络传输信息,并返回步骤2)。

本发明可在hadoop上运行验证,图4是本发明的系统实现架构图。本发明更改了大约400行代码,涉及资源管理器(rm)、节点管理器(nm)和应用主程序(am)。

am是每一个工作都有的管理程序,它的职责是向rm请求工作所需的资源,“推箱子”调度算法运行在rm上。首先在rm上实现了日志模块,可以记录并分析不同工作中任务的输入数据大小和计算时间的关系,因此可以预测计算部分的时间。reduce任务的大小,rm通过搜集map阶段的中间输入获取,即使reduce阶段可以提前运行,仍然可以利用部分map阶段的中间输入,估算出reduce任务的输入大小,因为部分map任务已经具有抽样代表性了。每当分配一个网络传输任务,rm和nm就会进行相应的元数据记录,用于下一次的任务分配。nm上有网络监测模块,可以监测网卡的网速,并且会根据任务的元数据信息,分配网络优先级。

以上仅是本发明的优选实施方式,本发明的保护范围并不仅局限于上述实施例,凡属于本发明思路下的技术方案均属于本发明的保护范围。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理前提下的若干改进和润饰,应视为本发明的保护范围。

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