论文部分内容阅读
随着数据量的爆炸式增长,传统的关系型数据库管理系统已经无法应对大数据时代数据处理的要求,人们迫切的需要一种能够对海量数据进行存储和运算的工具,Hadoop在这种环境下应运而生。作为一个分布式系统,Hadoop能够很好的利用集群来实现对海量数据的存储和运算。目前Hadoop凭借其高可靠性、高扩展性和高容错性等优点已然成为了大数据处理的行业标准。Hadoop设计之初是用来处理大规模聚集任务的,这种任务往往需要处理全部的数据,所以使用Hadoop对数据进行处理时,会扫描全部的数据。但是随着时间的发展,人们使用Hadoop执行的任务种类越来越多,许多任务不需要处理全部的数据,比如选择查询任务,在这种情况下Hadoop依然采用原来的数据处理方式,这就造成了Hadoop的数据存取效率低下的问题。面对这个问题,本文借鉴传统关系型数据库的经验,为Hadoop引入索引机制从而改变Hadoop扫描数据的处理方式,进而提高Hadoop的数据存取效率。本文首先分析了Hadoop的关键组成部分HDFS和Map Reduce,然后基于这部分的分析提出了两种索引方案:基于数据块的全局索引和集群上的分布式索引。基于数据块的全局索引方案首先介绍了分布式有序表的概念,然后从索引的格式、索引文件的存储、索引的创建和索引的使用四个方面论述了全局索引的实现。集群上的分布式索引方案首先分析了分布式索引的组织形式并对全局索引和局部索引进行了对比,然后详细阐述了在HDFS集群上分布式索引的实现过程,最后分析了该方案下系统的容错性。然后通过大量的对比实验,验证了本文提出的两种索引方案的有效性,对比分析了两者在执行选择查询任务时的效果。本文的实验结果验证了使用索引提高Hadoop数据存取效率的可行性。最后对本文的研究内容进行了总结,分析了当前研究的不足之处并为后续研究提出了一些思路。