论文部分内容阅读
近几年来,数据处理技术飞速地发展,一些基于数据分析的应用技术也随之大量涌现。并且伴随着各领域中信息采集技术的不断更新,出现了大量实时的非结构化数据,这些实时产生的数据像流水一样进入数据处理系统。如何实时地抓取数据流中有价值的信息,并实时地进行精确计算、得出相应结论至关重要。传统的分布式处理模式不可能实现上述需求,所以,一种全新的分布式流计算处理模式应运而生,这种处理模式以其良好的扩展性、灵活性、易用性受到业界的欢迎。本文设计了一套完整的流计算处理平台,在这个平台上用户可以完全避免集群搭建、平台运维、通信实现的繁琐工作,大大缩短了开发周期。在分布式流计算系统(如云计算等)上,多任务需要同时运行复杂的计算,通常把这些任务分配到多个处理机上去处理,这个过程被称为任务调度。采用不同的任务调度算法对相同的输入数据流进行处理,最终的性能差异非常大。通常在传统的处理模式中,其输入大多都是静态数据,所以任务的执行时间是可预知的。在均衡处理机数目受限的条件下,只要给定一组DAG,经典的HEFT算法就能得到一组高效的调度方案;但是实时流计算平台中的输入是源源不断的数据流,并且数据量的大小是不确定的,最终导致任务的执行时间是不确定的。这也就直接导致了HEFT算法在实际应用环境中,实验结果与预期结果差距较大。在分布式流计算系统里进行工作流任务调度时,如何解决单个任务执行时间的不确定性问题至关重要。由于这种不确定性的存在,静态的工作流任务调度方法将不再可用。因此本文提出一种基于蒙特卡洛的工作流任务调度方法,该方法建立在一种经典的启发式静态工作流任务调度方法(HEFT)基础之上,通过运用一种随机数生成算法,在一定约束条件下大量生成任务执行时间,并结合正态分布、均匀分布模型对任务执行时间进行建模,从而确保了 HEFT算法的可用性;利用HEFT算法,结合随机的任务执行时间,就可以生成大量的调度方案,再从这些调度方案中选出最优的调度方案,并作为最终的输出方案。整个过程通过对随机数生成机制、完工时间阈值的确定、各阶段重复次数的限定、性能评估标准等关键技术的研究,确保了此算法的高效性。通过把这一套全新的任务调度方法应用到“流水行云”平台中,并经过大量的实验以及性能测试,结果表明:本文提出的方法不仅大大缩短了任务的调度时间,显著提升了平台性能,而且此方法还具有非常强的通用性。