HBase 是一个面向列的数据存储,位于 Hadoop 分布式文件系统的顶部,为大数据顾问提供随机数据查找和更新。Hadoop 分布式文件系统基于”写入一次读取多”体系结构,这意味着一旦写入 HDFS 存储层的文件无法修改,但只能读取任何次。但是,HBase 在 HDFS 文件上提供了一个架构,用于访问和更新这些文件的任何次。

基地特征

强一致性

HBase 为读/写提供了很强的一致性,这意味着您将始终在读取操作中获取最新数据,并且除非所有副本都已更新,否则不会完成写入操作。

水平可扩展

HBase 使用分布在群集上的区域概念提供自动分片。每当表大小变得太大而无法容纳数据时,它都会自动分片并分布在多台计算机上。

故障容错

HBase 在发生故障时提供自动区域故障转移。

HDFS/地图减少集成

HBase 基于 HDFS 的顶部,可以与 MapReduce 程序集成,以充当源和接收器。

Java API/Rest/Thrift API

HBase 为非 java 终结点提供 Java API 以及休息/节俭 API

查询优化

HBase 具有内置块缓存和绽放筛选器,用于查询优化。

何时不使用 HBase?

  • 数据不够大时。HBase 适用于可以在传统 RDBMS 数据库中容纳的数十亿行表示的数据。
  • 当数据以恒定速度出现,并且预计将来不会增长时。
  • 当您不关心事务控件、触发器、辅助索引以及传统数据库支持的许多其他功能时。

基地架构

HBase 具有主从体系结构,其中我们有一个 HBase 主服务器(也称为 HMaster)和多个从属服务器,称为区域服务器或 HRegion 服务器。

地区:HBase 中的表在多个区域上拆分,这些区域分布在群集中的多台计算机上。

哈基地主机:HBase 负责将区域分配给区域服务器、提供管理控制台(创建、更新和删除表)并控制故障。在读取请求的情况下,HMaster 会接收客户端请求,然后转发到相应的区域服务器。

区域服务器从属服务器:区域服务器在所有辅助节点上运行,并服务于一组区域。区域服务器由块缓存组成,这些缓存可保存频繁访问数据,以便更高效地提供读取请求数据写入区域服务器磁盘上的多个 Hfile。

动物园管理员:HBase 使用动物园管理员进行协调和故障恢复。动物园管理员保存有关 HBase 主服务器和区域服务器的配置信息。客户端必须首先访问动物园管理员才能与 HBase 群集连接。ZKquoram 是一个动物园管理员守护程序,用于监视故障和修复故障节点。因此,ZooKeeper 是 HBase 体系结构中不可或缺的一部分,它维护了 HBase 群集中的所有协调和同步。

基地数据模型

HBase 表:它是行的集合,这些表分布在分布式区域。

HBase 行:它表示 HBase 表中的单个实体。

行键:它就像一个主键,用于唯一标识 HBase 表中的每一行。

:列表示实体的属性。例如,在客户 HBase 表中,列可以是客户姓名、年龄、电话号等。

列系列:所有显示某些相同品质的列都可以在同一列系列中拼凑在一起,这些列作为 Hfile 存储在 Hadoop 分布式文件系统上。

开始使用 HBase

我们将创建下表,使用 HBase shell 命令创建以下表,然后使用 Java API。员工表有两个列系列,即个人列系列,它表示个人信息,如姓名、年龄和专业列系列,代表工资和指定等专业信息。

HBase 外壳命令

Java