云计算异构集群系统存在的问题

来源:互联网 发布:界面设计用技术软件 编辑:程序博客网 时间:2024/06/05 15:41

异构集群系统存在的问题

               

现有的Hadoop调度器都是建立在同构集群的假设前提下,具体假设如下:

1)集群中各个节点的性能完全一样

2)对于reduce task,它的三个阶段:copy、sort和reduce,用时各占1/3

3)同一job的同类型的task是一批一批完成的,他们用时基本一样

实际当中却不然,集群系统需要面对:

1)处理机具有不同计算速度

2)通信能力和存储容量

3)数据局部性问题

如何调和不同处理机计算速度,不同机器之间数据传输问题以及因数据聚集带来I/O传输和网络消耗问题,都是在构架异构集群需要考虑的问题。总之把复杂应用的所有任务合理地调度分配到异构计算系统的各个处理机上, 并追求整个应用的最小完成时间的任务调度问题, 是异构集群计算系统提高性能的一个非常关键的问题。

其中这些问题可以统一理解为,hadoop集群在运行时分配到不同节点上相同计算任务在运行过程当中在开始时间、处理速度、等上存在不一致的情况下,照成有的节点计算起来一下子计算完了,有些任务需要等待很长的时间。总之就是各个节点任务结束不一致,这就要求我们采取方法让任务执行完成基本一致,这就需要我们侦探落后任务。

 

解决方法:现有的Hadoop调度器存在较大缺陷,主要体现在探测落后任务的算法上:如果一个task的进度落后于同类型task进度的20%,则把该task当做落后任务(这种任务决定了job的完成时间,需尽量缩短它的执行时间),从而为它启动一个备份任务(speculativetask)。如果集群异构的,对于同一个task,即使是在相同节点上的执行时间也会有较大差别,因而在异构集群中很容易产生大量的备份任务。减少过多的备份任务也是需要我们考虑的问题。基于现在情况下存在的问题解决方法可以参考Late调度算法这里就不做深入分析。

原创粉丝点击