Hbase数据模型分为逻辑数据模型和物理数据模型。
1、逻辑数据模型:namespace(数据库)和table(表)
hbase:系统内建表,包括namespace和meta表;
default:用户建表未制定namespace的表都创建在此;
Hbase表有一系列行构成,每行数据有一个rowkey以及若干column family构成,每个cloumn family 可包括无限列。(rowkey、column Family、column qualifier、cell、timestamp)
2、物理数据存储
hbase是列族式存储引擎,它以column family为单位存储数据,每个column family内部数据是以key value格式保存的,key value 组成形式:
【row key,column family,column qualifier,timestamp】 => value
Hbase的基本架构:
HMaster:协调RegionServer、元信息管理
RegionServer:负责单个Region的存储和管理,并与Client交互处理读写请求
Zookeeper:内部存储Hbase的重要元信息和状态信息,担任Master与RegionServer之前的服务协调角色
Client:提供Hbase访问接口,与RegionServer交互读写数据,并维护cache加快对Hbase的访问速度
RegionServer内部关键组件:BlockCache、MemStore、HFile、WAL
Hbase的访问方式:
1、Hbase shell:通过$Hbase_HOME/bin/hbase shell 命令进入交互式命令行
作用在表上的命令:create、list、disable、describe、drop
作用在数据上的命令:put、get、delete、scan、count
2、Hbase API
提供Java 类操作Hbase Api
3、数据收集组件
数据收集系统Flume和Sqoop,它们均可以将数据以预定格式导入Hbase。
分布式列式存储系统Kudu
大数据生态系统,存储层主要由HDFS和Hbase两个系统把持着,在追求高吞吐的批处理场景下,我们选用HDFS ;在追求低延迟,有随机读写需求场景下,我们选用Hbase。
Kudu:能结合两个系统的优点,同时支持高吞吐率和低延迟。它能够对快速变化的数据进行快速的分析,填补了以往Hadoop存储层的空缺。