导 师: 高英
授予学位: 硕士
作 者: ;
机构地区: 华南理工大学
摘 要: 近年来,大数据计算技术迅速发展,成为工业界、学术界高度关注的热点。为了处理大数据集合,许多企业和研究机构对该领域进行了深入的研究,提出了许多用于大数据计算的编程模型。这些编程模型的处理模式可以分成两种:批处理模式和流式处理模式。这两种模式的编程模型实现有很多,目前比较主流的系统有Hadoop、Spark、Storm、S4等。这些系统在处理其编程模型所面向的特定类型的任务时特别有效,然而在处理增量迭代类型任务时比较困难。增量迭代类型的任务在处理时会生成新的任务,这些新任务需要在下一轮迭代中计算。迭代过程不断地进行,直至所有的任务都处理完成,或者达到用户指定的停止条件。目前已有的编程模型在设计时并没有考虑到这种类型任务,基于这些编程模型处理增量迭代类型任务时会造成系统性能的下降,或者使得编程模型变得复杂。因此本文设计了问题集编程模型,用以处理增量迭代类型的任务。在问题集编程模型中,作业中的每个需要处理的任务称为问题,处理这些问题的组件称为问题处理器,存储待处理问题的集合称为问题集。在编程模型中设计了迭代控制器,用来对作业的执行过程进行控制。问题处理器从问题集中获取并处理问题,处理中生成的子问题经过迭代控制器的筛选后加入问题集。当问题集为空,并且迭代控制器认为作业应当停止时,作业处理完成。本文对问题集编程模型进行了实现,实现的系统的名称为Proset。Proset系统使用Java语言,在Linux环境下开发和运行。Proset系统在实现时考虑到各个组件在运行时可能会崩溃,设计了备份和恢复机制,提高了系统的可用性。另外,为了在Proset系统中支持多个作业同时运行,系统基于动态优先级策略设计了调度器,提高了系统资源的利用率。目前Proset系统已经被应用在分布�