HBase是一个针对结构化数据的可伸缩、高可靠、高性能、分布式和面向列的动态模式数据库。与传统关系数据库不同,HBase采用了BigTable的数据模型:增强的稀疏排序映射表(Key/Value),其中,键由行关键字列关键字时间戳构成。HBase提供了对大规模数据的随机、实时读写访问,同时,HBase中保存的数据可以使用MapReduce进行处理。 1. 逻辑存储模型 - 行(Row): 行键是HBase中唯一标识数据行的键,设计为能够快速定位数据的哈希值或时间序列。 - 列族(Column Family): 列族是数据存储的基本单位,允许高效的数据存储和查询。 - 列(Column): 在列族下定义具体的列,例如“Name”和“Alias”。 - 时间戳(Timestamp): 用于标识同一行中不同版本的数据。 2. 物理存储模型 - HRegion: 表数据增长时,HBase会将表分成多个HRegion。 - HRegionServer: 负责存储和处理分配给它的HRegion。 - HLog: 记录所有HRegionServer的写操作,以确保数据持久性。 3. HBase总体架构组件 - HMaster: 管理全局的HBase集群,负责HRegion的分配。