hbase的大数据查询优化(源码)【字数:10961】
摘 要企业在面临日益增长的数据面前,常常要考虑到业务数据的存储和大量数据的处理问题,因而对自身的数据库作出调整。而Google公司对于BigTable的开源实现,迎来了非传统型数据库的春天。Hbase作为优秀非传统型数据库的代表,因其可用性高、性能高、面向列和可伸缩的特点,使其成为企业在面临大量数据处理时的一把利剑。Hbase有着先天的优势和先天的劣势,而劣势就是其较差的数据定位能力也就是数据查询能力。作为nosql的优秀代表,因为面向列的特点,Hbase只能单单的以rowkey为主键作查询,而无法对表进行多维查询和join操作,并且查询通常都是全表扫描,耗费资源较大,查询效率较低。类比于传统型数据库里的一些查询优化方法,我们可不可以对Hbase表进行操作呢?通过分布式计算框架Mapreduce构建的Hbase二级索引,就可以对表进行有针对性的定位和高效率的查找。
目 录
第一章 绪论 1
1.1.选题依据与意义 1
1.2.国内外研究现状 1
1.3.本文研究内容 2
1.4.论文结构 2
第二章 相关技术 4
2.1.Hadoop架构技术 4
2.1.1. 分布式文件系统HDFS 4
2.1.2. 分布式计算框架MapReduce 5
2.1.3. ZooKeeper服务简介 6
2.2.Hbase体系架构 8
2.2.1. 非关系型数据库NoSql 8
2.2.2. Hadoop分布式数据库 8
2.2.3. Hbase存储原理 11
第三章 二级索引的研究与优化 13
3.1.实验环境 13
3.1.1. 实验环境介绍 13
3.1.2. 实验环境搭建 13
3.2.索引的研究与构建 18
3.2.1. 创建二级索引流程 19
3.2.2. 二级索引类图 20
3.2.3. Mapreduce核心代码 21
第四章 优化结果验证与分析 22
4.1.实验数据准备 22
4.2.索引创建与查询 *好棒文|www.hbsrm.com +Q: ¥351916072$
比较 22
4.3.多次性能比较 23
4.4.结果分析 24
4.5.本章小结 24
第五章 展望与总结 25
5.1.展望 25
5.2.总结 25
致谢 26
参考文献 27
第一章 绪论
选题依据与意义
目前,我们所用到的传统型数据库里面所存储的数据基本都是结构化数据,之所以称它为结构化数据,是因为它是由一个或者是多个字段组成的,并且它的每一个字段都事先确定了存储数据的一些约束以及格式等等,所以我们把这类数据叫做为结构化数据(英文名:structured data)。一些设计的比较好的数据库就是在schema中定义这一些格式或者是约束,并且由相对应的RDBMS为它们提供了实现以及保证。对于非结构化数据,我们可以看出它指的就是那些:没有事先定义的或者不适用于存储在传统数据库中的数据。
目前,一些大型公司网站比如google,alibaba,京东,它们网站中存储的数据都是些半结构化或者是非结构化的数据,而我们平时用的传统型数据库对这些数据处理的能力是很有限的。在很长一段时间里面,随着用户和业务的不断增多,这些行业相关的数据疯狂的增长,人们不得不寻找另一种存储这些数据的方法,google公司提出了bigatable这一理念,即大数据技术bigtable或NoSQL。
现如今,数据量的迅猛增加,使我们的这个社会提前进入了信息化时代,大数据技术应运而生,而目前处理、解决大数据的技术最热门、最抢手的莫过于Hadoop,Hadoop技术源自于Google公司发表的三篇论文关于分布式存储系统,分布式计算框架的大量数据的处理方法,通过对论文的研读,可以发现其中论文中描述最多的,也最重要的技术就是HDFS、Mapreduce,它通过把大批量的数据存入到HDFS,并使用Mapreduce来处理,使得hadoop在企业面临TB或者PB级数据处理的时候变得得心应手。目前从通信到电商,从Facebook到阿里巴巴,hadoop在世界的各个角落扮演着越来越重要的角色。
现实结果表明,面对这么大量的大数据,机器的查询时间是比较慢的,这就牵涉到了大数据技术bigtable或NoSQL,存储查询性能问题,即对查询数据的方法进行优化,优化的方式是利用一个二级索引,优化的目的是让查询时间更短,查询的方式更加灵活。
国内外研究现状
2015年电子科技大学付文静曾在《基于Hbase大数据存储研究》这篇论文中就对Hbase的存储效率底下问题进行了着重的研究与讨论。针对Hbase查询的特色,因为Hbase都是通过rowkey的方式全盘扫描表的,所以效率比较慢,并且,Hbase表并不支持非主键查询,和连接查询、join操作的。如果我们采用传统型数据库里面的索引方式来对Hbase建立索引,那么是不是也可以提高查询效率呢。很显然索引表仅需包含一个列值,因此索引表的大小要比原表小很多,所以索引表的一个region要比原表包含更多的记录。这篇论文既结局了大数据的存储问题,即半结构化或非结构化的数据,又向我们展示了如何快速查询或者是查询这些数据更加的灵活,可以说这篇论文我们可以看出Hbase有许多方面还是需要我们去进行优化的。
2016年崔丹、史金鑫在期刊论文中发表的《基于Redis实现Hbase二级索引的方法》中就对Hbase创建二级索引进行了深入研究,他发现有许多用户在对Hbase大数据量的数据进行查询操作的时候,不能够快速的定位到自己想要的数据,还有查询的方法十分笨拙,本文给我们展现出一种基于Redis创建HBase二级索引的方法,让我们在平时的使用中,运用这种方法支持Hbase的多条件查询,可以提升查询的效率和插入数据的性能。
华为二级索引与360的二级索引是比较流行的,关注度比较高的,客户端并行的向表的所有region发一个请求,然后每个region在server端会对数据进行检索,在region端检索到数据过后,系统会对整个结果进行合并和与排序,客户端把请求发给各个region,各个region根据索引说明构建好索引,并将索引存储进去。整体的过程都是分布式和并发式的构建,?华为的方案是数据和索引在不同的表里,但是数据region和索引region要一一对应并且在同一个regionserver上。因为360的查询基本都会带有时间范围,所以建立索引时他们字段会给建立的索引后再加上时间字段。索引的所以查询都是scan,用不上filter。这里引入的一个新的type:indexrow,这样在scan索引时就可以用到这个filter去过滤一些无用的文件。
本文研究内容
本文的主要的方向总结了Hadoop相关的技术,访问HDFS的几种方式,zookeeper资源调度组件,Hbase等,同时介绍了其运行原理,Hbase的体系架构,HDFS主要采用的是主备模式,和Hbase的运行原理,还有zk服务的分布式协调的优点。
目 录
第一章 绪论 1
1.1.选题依据与意义 1
1.2.国内外研究现状 1
1.3.本文研究内容 2
1.4.论文结构 2
第二章 相关技术 4
2.1.Hadoop架构技术 4
2.1.1. 分布式文件系统HDFS 4
2.1.2. 分布式计算框架MapReduce 5
2.1.3. ZooKeeper服务简介 6
2.2.Hbase体系架构 8
2.2.1. 非关系型数据库NoSql 8
2.2.2. Hadoop分布式数据库 8
2.2.3. Hbase存储原理 11
第三章 二级索引的研究与优化 13
3.1.实验环境 13
3.1.1. 实验环境介绍 13
3.1.2. 实验环境搭建 13
3.2.索引的研究与构建 18
3.2.1. 创建二级索引流程 19
3.2.2. 二级索引类图 20
3.2.3. Mapreduce核心代码 21
第四章 优化结果验证与分析 22
4.1.实验数据准备 22
4.2.索引创建与查询 *好棒文|www.hbsrm.com +Q: ¥351916072$
比较 22
4.3.多次性能比较 23
4.4.结果分析 24
4.5.本章小结 24
第五章 展望与总结 25
5.1.展望 25
5.2.总结 25
致谢 26
参考文献 27
第一章 绪论
选题依据与意义
目前,我们所用到的传统型数据库里面所存储的数据基本都是结构化数据,之所以称它为结构化数据,是因为它是由一个或者是多个字段组成的,并且它的每一个字段都事先确定了存储数据的一些约束以及格式等等,所以我们把这类数据叫做为结构化数据(英文名:structured data)。一些设计的比较好的数据库就是在schema中定义这一些格式或者是约束,并且由相对应的RDBMS为它们提供了实现以及保证。对于非结构化数据,我们可以看出它指的就是那些:没有事先定义的或者不适用于存储在传统数据库中的数据。
目前,一些大型公司网站比如google,alibaba,京东,它们网站中存储的数据都是些半结构化或者是非结构化的数据,而我们平时用的传统型数据库对这些数据处理的能力是很有限的。在很长一段时间里面,随着用户和业务的不断增多,这些行业相关的数据疯狂的增长,人们不得不寻找另一种存储这些数据的方法,google公司提出了bigatable这一理念,即大数据技术bigtable或NoSQL。
现如今,数据量的迅猛增加,使我们的这个社会提前进入了信息化时代,大数据技术应运而生,而目前处理、解决大数据的技术最热门、最抢手的莫过于Hadoop,Hadoop技术源自于Google公司发表的三篇论文关于分布式存储系统,分布式计算框架的大量数据的处理方法,通过对论文的研读,可以发现其中论文中描述最多的,也最重要的技术就是HDFS、Mapreduce,它通过把大批量的数据存入到HDFS,并使用Mapreduce来处理,使得hadoop在企业面临TB或者PB级数据处理的时候变得得心应手。目前从通信到电商,从Facebook到阿里巴巴,hadoop在世界的各个角落扮演着越来越重要的角色。
现实结果表明,面对这么大量的大数据,机器的查询时间是比较慢的,这就牵涉到了大数据技术bigtable或NoSQL,存储查询性能问题,即对查询数据的方法进行优化,优化的方式是利用一个二级索引,优化的目的是让查询时间更短,查询的方式更加灵活。
国内外研究现状
2015年电子科技大学付文静曾在《基于Hbase大数据存储研究》这篇论文中就对Hbase的存储效率底下问题进行了着重的研究与讨论。针对Hbase查询的特色,因为Hbase都是通过rowkey的方式全盘扫描表的,所以效率比较慢,并且,Hbase表并不支持非主键查询,和连接查询、join操作的。如果我们采用传统型数据库里面的索引方式来对Hbase建立索引,那么是不是也可以提高查询效率呢。很显然索引表仅需包含一个列值,因此索引表的大小要比原表小很多,所以索引表的一个region要比原表包含更多的记录。这篇论文既结局了大数据的存储问题,即半结构化或非结构化的数据,又向我们展示了如何快速查询或者是查询这些数据更加的灵活,可以说这篇论文我们可以看出Hbase有许多方面还是需要我们去进行优化的。
2016年崔丹、史金鑫在期刊论文中发表的《基于Redis实现Hbase二级索引的方法》中就对Hbase创建二级索引进行了深入研究,他发现有许多用户在对Hbase大数据量的数据进行查询操作的时候,不能够快速的定位到自己想要的数据,还有查询的方法十分笨拙,本文给我们展现出一种基于Redis创建HBase二级索引的方法,让我们在平时的使用中,运用这种方法支持Hbase的多条件查询,可以提升查询的效率和插入数据的性能。
华为二级索引与360的二级索引是比较流行的,关注度比较高的,客户端并行的向表的所有region发一个请求,然后每个region在server端会对数据进行检索,在region端检索到数据过后,系统会对整个结果进行合并和与排序,客户端把请求发给各个region,各个region根据索引说明构建好索引,并将索引存储进去。整体的过程都是分布式和并发式的构建,?华为的方案是数据和索引在不同的表里,但是数据region和索引region要一一对应并且在同一个regionserver上。因为360的查询基本都会带有时间范围,所以建立索引时他们字段会给建立的索引后再加上时间字段。索引的所以查询都是scan,用不上filter。这里引入的一个新的type:indexrow,这样在scan索引时就可以用到这个filter去过滤一些无用的文件。
本文研究内容
本文的主要的方向总结了Hadoop相关的技术,访问HDFS的几种方式,zookeeper资源调度组件,Hbase等,同时介绍了其运行原理,Hbase的体系架构,HDFS主要采用的是主备模式,和Hbase的运行原理,还有zk服务的分布式协调的优点。
版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/181.html