论文部分内容阅读
随着计算机技术和网络技术的高速发展,人类的生产生活活动信息越来越频繁地被数字化,不仅数据量呈现爆发性增长,而且数据来源呈现异构特性。另一方面,数据的价值也越来越受到重视,人们期望从海量的多样化数据中挖掘有用的信息和规律。因此,如何实现对海量数据的高效处理,是近年来系统领域的研究热点,同时也获得工业界的高度青睐。海量数据处理场景主要分为两种,即离线处理和在线处理。离线处理针对已经被存储的批量静态历史数据,关注点在于吞吐量;在线处理针对源源不断产生的动态数据流,关注点在于实时性。近年来,这两种处理场景都得到了学术界的广泛关注,也产生了许多优秀的研究成果。本文主要聚焦于一类广泛存在的海量数据处理应用场景。在这类场景中,既有对静态数据进行离线处理的需求,又有对动态数据进行在线处理的需求。本文的工作主要有两点:1)针对复杂的海量数据处理场景,提出一种基于分布式的系统架构。首先,架构可以有效支持多数据源的高速数据接入;其次,架构可以以平滑的方式为后续的离线处理和在线处理提供一致的数据流,将两者有机结合,兼顾吞吐量和实时性的需求;第三,架构可以支持离线处理和在线处理的结果在业务层面上的融合汇聚。我们从理论上对架构的合理性给予分析,并从实验和应用层面对架构的有效性进行说明。2)针对海量数据处理场景中的分布式任务分配需求,提出一种去中心化的分布式任务分配方法。在我们提出的方法中,没有中心节点的参与,所有节点以对等的形态参与任务分配过程,因此避免了主从结构方法中由中心节点异常带来的系统失效风险。我们从理论上阐述了去中心化任务分配方法的有效性,并与主从结构任务分配方法进行对比,得出各自的优缺点和适用场景。本文提出的架构和方法,不仅在理论上证明是可行的,而且已经真正运用到了实际的应用场景中,经过了较长时间生产环境的考验,具有非常强的实用价值。