《HBase权威指南》一3.1 概述

简介:

本节书摘来异步社区《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版使用教程
  相关的阿里云产品:云数据库 HBase 版 面向大数据领域的一站式NoSQL服务,100%兼容开源HBase并深度扩展,支持海量数据下的实时存储、高并发吞吐、轻SQL分析、全文检索、时序时空查询等能力,是风控、推荐、广告、物联网、车联网、Feeds流、数据大屏等场景首选数据库,是为淘宝、支付宝、菜鸟等众多阿里核心业务提供关键支撑的数据库。 了解产品详情: https://cn.aliyun.com/product/hbase   ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
分布式数据库 Hbase 存储
带你读《HBase原理与实践》之一:HBase概述
Apache HBase是基于Apache Hadoop构建的一个高可用、高性能、多版本的分布式NoSQL数据库,是Google BigTable的开源实现,通过在廉价服务器上搭建大规模结构化存储集群,提供海量数据高性能的随机读写能力。
|
存储 大数据 分布式数据库
《HBase权威指南》一导读
你阅读本书的理由可能有很多。可能是因为听说了Hadoop,并了解到它能够在合理的时间范围内处理PB级的数据,在研读Hadoop的过程中发现了一个处理随机读写的系统,它叫做HBase。或者将其称为目前流行的一种新的数据存储架构,传统数据库解决大数据问题时成本更高,更适合的技术范围是NoSQL。
2456 0
|
JavaScript 前端开发 分布式数据库
|
缓存 Hbase 分布式数据库