分布式列簇式存储系统HBase原理详解
HBase是一个基于HDFS构建的分布式数据库系统,具有良好的扩展性、容错性以及易用的API。核心思想是将表中数据按照rowkey排序后,切分成若干region,并存储到多个节点上。HBase采用了经典的主从软件架构,其中主服务被称为HMaster,负责管理从节点、数据负载均衡及容错等,Hmaster是无状态的,所有元信息保存在ZooKeeper中,从服务被称为RegionServer,负责Region的读写,HMaster和RegionServer之间通过ZooKeeper进行服务协调。HBase提供了丰富的访问方式,用户可以通过Hbase shell、Hbase API、数据收集组件、计算引擎等存取HBase上的文件。
一、HBase逻辑数据模型
逻辑数据模型是用户从数据库所看到的模型,直接与HBase数据建模相关。
类似于数据库中的database和table逻辑概念,HBase称为namespace和table,一个namespace中包含一组table,HBase内置了两个默认的namespace。
- hbase:系统内建表,包括namespace和meta表
- default:用户建表时未指定namespace的表都创建在此。
HBase表由一系列行构成,每行数据有一个rowkey,以及若干column family构成,每个column family可包含无限列。