zl程序教程

您现在的位置是:首页 >  数据库

当前栏目

《HBase权威指南》一3.1 概述

HBase 指南 概述 权威 3.1
2023-09-11 14:17:46 时间

本节书摘来异步社区《HBase权威指南》一书中的第3章,第3.1节,作者: 【美】Lars George 译者: 代志远 , 刘佳 , 蒋杰 责编: 杨海玲,更多章节内容可以访问云栖社区“异步社区”公众号查看。

3.1 概述

HBase的主要客户端接口是由org.apache.hadoop.hbase.client包中的HTable类提供的,通过这个类,用户可以完成向HBase存储和检索数据,以及删除无效数据之类的操作。在介绍这个类的各个方法之前,让我们先了解一下它的大体功能。

所有修改数据的操作都保证了行级别的原子性,这会影响到这一行数据所有的并发读写操作。换句话说,其他客户端或线程对同一行的读写操作都不会影响该行数据的原子性:要么读到最新的修改,要么等待系统允许写入该行修改。更多内容请参考第8章。①

通常,在正常负载和常规操作下,客户端读操作不会受到其他修改数据的客户端影响,因为它们之间的冲突可以忽略不计。但是,当许多客户端需要同时修改同一行数据时就会产生问题。所以,用户应当尽量使用批量处理(batch)更新来减少单独操作同一行数据的次数。

写操作中涉及的列的数目不会影响该行数据的原子性,行原子性会同时保护到所有列。

最后,创建HTable实例是有代价的。每个实例都需要扫描.META.表,以检查该表是否存在、是否可用,此外还要执行一些其他操作,这些检查和操作导致实例调用非常耗时。因此,推荐用户只创建一次HTable实例,而且是每个线程创建一个,然后在客户端应用的生存期内复用这个对象。

如果用户需要使用多个HTable实例,应考虑使用HTablePool类(详情见4.4节),它为用户提供了一个复用多个实例的便捷方式。

文字以下是我们刚才讨论内容的几点总结。

只创建一次HTable实例,一般在应用程序开始时创建。 为执行的每一个线程(或者所使用的HTablePool)创建独立的HTable实例。 所有的修改操作只保证行级别的原子性。
《HBase权威指南》一导读 你阅读本书的理由可能有很多。可能是因为听说了Hadoop,并了解到它能够在合理的时间范围内处理PB级的数据,在研读Hadoop的过程中发现了一个处理随机读写的系统,它叫做HBase。或者将其称为目前流行的一种新的数据存储架构,传统数据库解决大数据问题时成本更高,更适合的技术范围是NoSQL。
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载