论文部分内容阅读
随着信息技术的不断发展,来自各种信息源的数据也出现了爆发式的增长。因此,对于这些海量数据的处理便显得尤为重要。但是对于不同类型的数据所采用的处理策略是不一样的,例如业界比较成熟的基于MapReduce模型的Hadoop框架适合对海量静态数据的批处理,而对于源源不断的动态数据的实时处理,Hadoop并没有提供很好的策略。但本文所设计的计算框架在实时处理方面有较好的表现,可以满足对大量动态数据做实时的处理。对于这种实时处理采用了流式计算的方式进行设计。与业界一般流式计算框架不同的是,本框架支持对这些数据处理节点进行流程式的编排,从而实现一个对动态数据的流程式实时处理。本文主要对该框架的设计、实现、以及其实际应用进行阐述。(1)本文的设计是以Akka为研究基础,Akka是一个用Scala编写的库,用于简化编写容错的、高可伸缩性的Java和Scala的Actor模型应用。根据Akka所实现的Actor模型的特点设计了框架中的前端处理节点(Frontend),控制节点(Master),工作节点(Backend)。其次通过这些基于Actor模型的节点分别从分布式、流式以及流程编排三方面对框架进行布局和考虑。最后通过对整个框架的结构模型和处理流程的阐述来说明该框架的实现原理和实现过程。(2)该框架的实现是基于大量流式计算(例如:Storm, Spark等)框架的设计和实现思路的研究,将其按照前端节点模块,调度模块,工作节点模块,资源管理模块四个模块进行划分和设计,并且对每个模块的职责、实现原理以及实现过程做了详细的说明。(3)对于框架的应用,首先介绍了框架的实时计算,批次计算,响应性查询等使用场景,并通过“碰撞问题”和“资源实时搜索”两个实际应用进一步阐述框架的使用,通过对实验的过程、结果的阐述及分析来说明框架的实际应用效果。本文通过对该流式计算框架的研究,不仅可以为在分布式系统中对大规模数据做实时计算需求的开发者提供解决方案,而且提供了设计响应式流式计算框架的实现思路。