本文共 895 字,大约阅读时间需要 2 分钟。
本节书摘来自华章出版社《HBase企业应用开发实战》一 书中的第1章,第1.3节,作者:马延辉 孟鑫 李立松 ,更多章节内容可以访问云栖社区“华章计算机”公众号查看。
HBase参考了Google的BigTable建模,且将下面三篇博文作为HBase实现的理论基础:
BigTable by Google(2006)HBase and HDFS Locality by Lars George(2010)No Relation:The Mixed Blessings of Non-Relational Databases by Ian Varley(2009)从上面的博文列表中也可以看出,HBase和HDFS有着非常紧密的关系,更准确的说法是:HBase严重依赖Hadoop的HDFS组件,HBase使用HDFS作为底层存储系统。因此,如果要使用HBase,前提是首先必须有Hadoop系统。从后面第2章的HBase安装过程的讲解中也可以总结出这点。Hadoop的组件之一MapReduce可以直接访问HBase,但是,这不是必需的,因为HBase中最重要的访问方式是原生Java API,而不是MapReduce这样的批量操作方式。图1-2展示了HBase在Hadoop生态系统中的位置。因为HBase底层依赖Hadoop,所以选择Hadoop版本对HBase部署很关键。表1-1显示了不同HBase发行版本所支持的Hadoop版本信息。基于HBase版本,应该选择合适的Hadoop版本,表1-1中是官方给出的HBase和Hadoop的版本支持矩阵。
表1-1中字母的含义如下。
S:经过测试的、支持的。X:不支持。NT:可以运行但测试不充分。当然,并不是说只要满足表1-1中的版本匹配就万事大吉了,在考虑版本匹配的同时,也需要考虑一些其他因素,例如:如果使用0.94.x运行在Hadoop 2.2.0版本上,需要重新编译0.94.x。对于ZooKeeper的版本只需要跟HBase依赖库中的ZooKeeper保持一致即可。转载地址:http://juzza.baihongyu.com/