论文部分内容阅读
各行业应用数据规模的爆炸式增长,对传统数据计算技术和数据存储技术提出前所未有的挑战。Spark作为一款内存计算引擎,具有流处理、机器学习、图挖掘和结构化查询等多种计算方式,被越来越多的组织机构选作数据挖掘平台。NoSQL数据库具有灵活的数据模型和出色的读写性能,被大范围应用于企业大规模数据的存储平台。然而,Spark未对NoSQL数据库提供如HDFS存储系统式的友好计算支持,业界关于应用Spark处理分布式存储系统的实践案例仅给出较少的个例化解决方案。如果用户出现新的数据处理需求且现有系统难以满足时,需要重新选取存储系统研究解决方案,从而提高应用数据的处理难度。Spark与NoSQL数据库的集成需要从技术上解决以下问题:1.如何实现Spark以分布式并行方式处理NoSQL数据库的数据。2.如何实现Spark尽可能以数据本地化方式计算NoSQL数据源的数据。针对以上问题,本文提出一种Spark和NoSQL数据库的集成框架,支持Spark基于数据本地化的方式并行计算NoSQL数据库的数据。本文的研究工作主要包括以下几个方面的内容:1.基于Spark数据计算机制和NoSQL数据库工作原理,提出一种Spark和NoSQL数据库的集成框架,支持Spark以数据本地化方式分布式并行处理NoSQL数据库的数据。这部分工作主要包括:1)深入分析应用Hadoop、Spark等数据分析引擎处理Cassandra、HBase等NoSQL数据库数据的实践案例;2)研究分布式存储数据源类型RDD的设计方式,并给出NoSQL数据集抽象为RDD的数据分片原则、数据本地化计算方式及分片计算方法;3)定义集成框架接口规范;4)基于Co-Located方式设计两类系统集成的部署架构。2.依据HBase数据存储模型,研究并给出Spark与HBase数据库应用集成框架实现系统集成的参考实例。这部分工作主要包括:1)HBase待处理数据集到RDD数据结构的转换研究;2)在Spark系统上增加对HBase数据库的计算支持模块并编程实现。3.通过参考实例的实验测试和分析得出:1)Spark能够以数据本地化方式分布式并行计算HBase数据;2)基于集成框架的集成方式性能显著好于一般处理方式;3)选择和投影请求下推到HBase服务器端的数据获取方式性能优于Spark自身的数据过滤方式。实验结果表明,本文提出的Spark与NoSQL数据库集成框架理论能够提高数据处理效率。