更新时间:2024-08-03 GMT+08:00

HBase应用开发简介

HBase介绍

HBase是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统。HBase设计目标是用来解决关系型数据库在处理海量数据时的局限性。

HBase使用场景有如下几个特点:

  • 处理海量数据(TB或PB级别以上)。
  • 具有高吞吐量。
  • 在海量数据中实现高效的随机读取。
  • 具有很好的伸缩能力。
  • 能够同时处理结构化和非结构化的数据。
  • 不需要完全拥有传统关系型数据库所具备的ACID特性。ACID特性指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation,又称独立性)、持久性(Durability)。
  • HBase中的表具有如下特点:
    • 大:一个表可以有上亿行,上百万列。
    • 面向列:面向列(族)的存储和权限控制,列(族)独立检索。
    • 稀疏:对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏。

接口类型介绍

由于HBase本身是由java语言开发出来的,且java语言具有简洁通用易懂的特性,推荐用户使用java语言进行HBase应用程序开发。

HBase采用的接口与Apache HBase保持一致。

HBase通过接口调用,可提供的功能如表1所示。

表1 HBase接口提供的功能

功能

说明

CRUD数据读写功能

增查改删

高级特性

过滤器、二级索引,协处理器

管理功能

表管理、集群管理

常用概念

  • 过滤器

    过滤器提供了非常强大的特性来帮助用户提高HBase处理表中数据的效率。用户不仅可以使用HBase中预定义好的过滤器,而且可以实现自定义的过滤器。

  • 协处理器

    允许用户执行region级的操作,并且可以使用与RDBMS中触发器类似的功能。

  • Client

    客户端直接面向用户,可通过Java API、HBase Shell或者Web UI访问服务端,对HBase的表进行读写操作。本文中的HBase客户端特指HBase client的安装包,可参考HBase对外接口介绍