本文共 1571 字,大约阅读时间需要 5 分钟。
HBase基本概念
1. HBase的逻辑实体
HBase的核心逻辑实体包括6个关键概念,这些概念构成了HBase的基础特性:
表(Table):数据的组织单位。 行(Row):表中数据按行存储,行键是唯一标识符。行键无数据类型,始终以字节数组(byte[])形式存储。 列族(Column Family):行中的数据按列族分组,列族同时确定了数据的物理存储位置。列族的设计对系统性能至关重要。 列限定符(Column Qualifier)(简称列):在列族中,通过列限定符定位数据。与传统数据库不同,HBase不需要提前定义列的模式(No SchemaDB) 单元(Cell):由行键、列族和版本组成的四维坐标,唯一确定一个存储单元。单元存储的值也没有数据类型,始终以字节数组形式存储。 时间版本(TimeStamps):允许每行数据保存多个版本,通过时间戳区分不同版本。默认情况下,HBase会保留三个版本。 HBase的数据模型与传统RDBMS中的二维坐标(行+列)不同,它采用四维坐标(行+列族+列+版本),实现了一个面向列的存储架构。HBase本质上是一个键值存储系统,主要用于处理非结构化或半结构化的数据。
2. HBase的存储模型
HBase的存储模型基于分布式和面向列的设计原则。以下是HBase的主要存储单位:
Region:表按行键水平划分的存储单元,类似于RDBMS中的分区。RegionServer是HBase分布的基本单元。 Store:每个列族对应一个Store。Region包含多个Store,因此Region需要处理多个列族的数据。 StoreFile:Store包括内存缓存(MemStore)和磁盘存储(StoreFile)。MemStore用于缓存新写入的数据,当内存满载时,数据会被刷写到StoreFile中。 HFile:HBase的数据存储文件格式,HFile通过Hadoop分布式文件系统(HDFS)进行写入和读取。HFile的设计使得HBase能够高效地管理大规模数据。 3. HBase的功能组件
HBase系统由多个组件协同工作,确保数据的高效存储和管理:
HBase Client:用户或应用程序通过客户端与HBase进行交互。Client通常会带有缓存(Cache)来提升读写性能。 Zookeeper:负责管理HBase集群中的RegionServer,确保集群中只有一个Master节点。Zookeeper还保存Region的地址信息,监控RegionServer的状态,并存储HBase的元数据。 Master:HBase的管理节点,负责分配Region、检测失效的RegionServer、以及管理用户对表的操作权限。 RegionServer:负责存储和管理Region数据。RegionServer需要处理Region内的读写请求,并能够将过大的Region切分成多个Region以优化性能。 HBase的特点
HBase是一个分布式、面向列、NoSQL数据库,具备以下核心特点:
1. 分布式存储:支持多个RegionServer协同工作,能够处理PB级的数据量。
2. 面向列:数据按列存储和查询,适合处理结构化或半结构化数据。
3. 无模式数据库:不需要预定义数据模式,可以动态添加列。
HBase的适应场景
HBase适用于以下场景:
存储海量数据:适合处理PB级甚至更大的数据量。 高写入需求:支持高频率的数据插入操作。 大数据的高效随机访问:通过优化的存储架构,支持快速的随机读写操作。 高扩展性:能够根据数据需求自动扩展。 结构或半结构化数据:支持JSON、XML等非关系型数据的存储和查询。 无需复杂的事务支持:适合不需要跨行事务或复杂join操作的场景。 转载地址:http://nnmvz.baihongyu.com/