HBase 简介

目录

 HBase 简介

1.HBase 定义

2.HBase 数据模型

3.HBase 逻辑结构

4.HBase 物理存储结构

 5.HBase 基本架构


 HBase 简介

1.HBase 定义

        HBase是一个开源的、分布式的、面向列的非关系型数据库,设计灵感来源于Google的Bigtable论文。它利用Hadoop的HDFS作为其存储系统,利用Hadoop的MapReduce作为其计算引擎。HBase提供了高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统。

        HBase与传统的关系型数据库不同,它是一个面向列的存储系统,数据在物理存储上并不按照行进行连续存储,而是按照列进行分组存储。这种设计使得HBase在处理大规模数据时具有更好的扩展性和性能。HBase使用Java编写,因此可以在Java应用程序中方便地集成和使用。

        HBase提供了丰富的API,包括Java API、Thrift API、REST API等,使得开发人员可以方便地访问和操作HBase中的数据。HBase还支持多种数据模型,如表格模型、稀疏表格模型、列族模型等,可以满足不同类型的应用需求。

        总的来说,HBase是一个适合处理大规模数据的分布式数据库,广泛应用于数据仓库、数据分析、实时日志分析等领域。

2.HBase 数据模型

HBase的数据模型主要有以下概念:

  1. 表(Table):HBase的表由多个行组成。与传统的关系型数据库的表概念相似,不同的是,HBase定义表时只需要声明列族即可,不需要声明具体的列。
  2. 行(Row):HBase的行由行的Key和一个或多个列组成,行在存储的时候,行Key按字母表顺序存放。行是HBase中最基本的存储单元,通过行键(Row Key)唯一标识。
  3. 列族(Column Family):一个HBase表被分组成许多“列族”的集合,它是基本的访问控制单元。每个列族有一些存储参数,比如数据是否在内存缓存、数据怎样压缩等。每行由相同的列族组成。
  4. 列限定符(Qualifier):每个列族有一个列限定符,列限定符的作用是作为列数据的一个标识,比如一个列族是content,那么这个列的列限定符会是content:html或者content:pdf之类。
  5. 单元格(Cell):在HBase表中,通过行、列族和列限定符确定一个“单元格”,单元格中存储的数据没有数据类型,总被视为字节数组byte[]。
  6. 时间戳(Timestamp):每个单元格都保存着同一份数据的多个版本,这些版本采用时间戳进行索引。时间戳是64位的,可以精确到秒级别或毫秒级别。

总的来说,HBase的数据模型是一个多维度的map,其key由行键、列族名、列限定符和时间戳组成。HBase利用这种数据模型,可以高效地存储和处理大规模数据。

3.HBase 逻辑结构

        HBase的逻辑结构主要包括表、行、列族、列限定符和单元格等概念。HBase中的数据以表的形式组织,每个表由多个行组成,每个行由一个唯一的行键标识。在行中,数据按列族分组,列族是访问控制的基本单元,每个列族可以包含多个列限定符。每个列限定符对应一个单元格,单元格中存储的数据没有数据类型,总被视为字节数组。每个单元格中可以存储多个版本的数据,这些版本通过时间戳进行索引。

        HBase的逻辑结构支持高效的随机读/写操作,特别是对于大规模数据的处理。由于数据按行键的字典序排序,因此可以根据行键进行快速检索。此外,HBase还支持数据的压缩、Bloom过滤器和数据校验等特性,以提供可靠的数据存储和访问。

        HBase的逻辑结构可以灵活地适应不同类型的应用需求。例如,可以使用稀疏表格模型来存储大规模稀疏数据,或者使用列族模型来存储具有相同列族的数据。此外,HBase还提供了丰富的API和工具,使得开发人员可以方便地访问和操作HBase中的数据。

4.HBase 物理存储结构

HBase的物理存储结构主要包括以下几个组成部分:

  1. 表(Table):在物理存储上,HBase表由多个HRegion组成,每个HRegion对应表中的一个连续的数据段。每个HRegion由多个HStore组成,每个HStore对应表中的一个列族的存储。
  2. HRegion(Region):HRegion是HBase中分布式存储和负载均衡的最小单元。一个HRegion上保存着一个表中的一段连续的数据。每个HRegion保存当前HRegion的startRowKey和endRowKey,以便进行数据定位。随着数据不断插入表,HRegion会不断增大,当超出设定的阈值大小后,会在某行的边界把表分成两个大小基本相同的HRegion,称为HRegion分裂。
  3. HStore(Store):每个HRegion由多个HStore组成,每个HStore对应表中的一个列族的存储。HStore由两部分组成:MemStore和StoreFile,用户写入的数据首先放入MemStore,当MemStore(默认128M)满了以后再刷入StoreFile(默认30M)。StoreFile是HBase中的最小存储单元,底层最终由HFile实现。
  4. HLog(WAL):每个HRegionServer包含两个部分:HLog和HRegion。 Hlog用于存储数据日志,主要用于故障恢复。

总的来说,HBase的物理存储结构以表为单位,通过将表划分为多个HRegion进行分布式存储和负载均衡。每个HRegion由多个HStore组成,每个HStore对应一个列族的存储。底层使用HFile实现最小存储单元StoreFile的存储。这种物理存储结构使得HBase能够高效地处理大规模数据,并具有良好的可扩展性和容错性。

 5.HBase 基本架构

HBase的基本架构包括以下几个组成部分:

  1. HMaster节点:HMaster节点是HBase的主节点,负责管理多个HRegionServer、恢复HRegionServer故障等。HMaster节点还负责DDL操作,如namespace和table的增删改,column familiy的增删改等。此外,HMaster节点还管理namespace和table的元数据,这些数据实际存储在HDFS上。
  2. HRegionServer节点:HRegionServer节点是HBase的从节点,负责管理多个HRegion以及相应客户端请求。HRegionServer节点还负责区域划分,并通知HMaster节点有了新的子区域。此外,HRegionServer节点还负责数据的实际存储和读取操作。
  3. ZooKeeper集群:HBase需要ZooKeeper集群服务,ZooKeeper用于记录HMaster位置、根目录表位置等核心数据。当有HRegionServer崩溃时,ZooKeeper可以用来进行分配协调。
  4. HDFS:HBase底层采用HDFS作为其存储系统,通过将数据存储在HDFS中,实现数据的分布式存储和处理。

总体来说,HBase的基本架构采用Master/Slave架构搭建集群,通过HMaster节点和HRegionServer节点的协同工作,实现数据的分布式存储和处理。同时,借助ZooKeeper集群和HDFS,HBase能够提供可靠的数据存储和访问,并具有良好的可扩展性和容错性。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值