论文部分内容阅读
当今网络无处不在,电子商务、移动社交网络、智能硬件、智能交通等领域每天都在产生海量的数据流。此类数据流,通常无法被完全存储,只有在产生的时刻及时得到处理,才能获取其中的商业价值。然而,流数据往往需要多级计算才能完成处理过程,处理过程依赖大量的计算和内存资源,已经超过了单机的处理能力。同时,流数据处理需要持续的计算,业务不能间断,对资源可靠性要求较高。因此,具有超强计算能力和高可靠性的云计算技术成为必然选择。 云计算环境下大量的计算资源和内存资源,是由计算机集群实现的。集群中的节点数量大,同时执行的任务数量多,同一时刻流经的数据量大。如果存在任务和流量的分配失衡,即某些节点负载较轻而其他节点过载甚至崩溃,就会造成云平台的性能降低甚至崩溃。完善的任务和流量调度不仅能够解决上述问题,还能提高资源利用率、平台可扩展性、服务稳定性、用户的满意度,以及降低运营成本;而类似Hadoop的批处理平台中的任务调度和负载均衡不完全适用于流计算。因此,流计算的数据负载均衡和任务调度问题非常重要。 首先,本文为实时流计算平台“流水行云”提出了一套任务调度模型和算法。该模型将集群中的节点和待分配的云任务分别抽象为分配矩阵的行和列,将云任务之间的依赖关系抽象为邻接矩阵。在此基础上,提出了满足云环境动态场景的任务调度和资源分配算法,该算法根据流计算多级计算、任务关联性大、依赖度高的特点,充分考虑任务间的相互依赖关系,在调度过程中优先将相关任务分配在同一节点或相邻节点上,以减少任务间经过交换机的通信流量,大大减轻平台的网络带宽压力,提高系统的整体性能。 其次,对于云环境下的实时流计算平台,仅仅完成任务级的调度和均衡是不够的,因为流计算的负载主要由流量产生,即流计算是轻计算重流量的。对于“流水行云”平台的流量级负载均衡,本文为提出了一套负载均衡架构和算法。该架构和算法能够在没有全局会话表的情况下,保持会话一致性,实现了云任务数据流量之间的均衡。 最后,实验证明上述任务调度算法能够有效的均衡集群节点上的云任务数量,保证各节点CPU、内存等资源的使用率相对均衡,而且降低了通过交换机的流量;实验证明上述负载均衡算法能够有效的均衡集群中各节点的流量分配,使得流经各节点的数据量相对均衡。两套算法均达到了提高系统稳定性、资源利用率的目的。 本文提出的任务调度算法和负载均衡算法,能够提高云环境下实时流计算平台的可用性和均衡性、满足处理复杂业务数据流的要求,可以应用于实时云平台、大规模数据流处理等领域,具有重要的理论与现实意义。