1、概念
HBase是一个分布式的Nosql数据库,其特点高可靠、高性能、面向列、可伸缩。
- 适合存储大表数据 ,并且可实时读写大表数据。大表:表的规模可以达到数十亿行以及数百万列
- 表结构稀疏。稀疏:对于为空的列,并不占用存储空间
- 数据底层存储于Hadoop HDFS分布式文件系统。
- 利用ZooKeeper作为协同服务。
2、特点
HBase适合具有如下需求的应用:
ACID原则是数据库事务正常执行的四个特性,分别指原子性、一致性、独立性及持久性。
- 事务的原子性(Atomicity):指一个事务要么全部执行,要么不执行。也就是说一个事务不可能只执行了一半就停止了。比如你从取款机取钱,这个事务可以分成两个步骤:1划卡,2出钱,不可能划了卡,而钱却没出来.这两步必须同时完成,要么就不完成。
- 事务的一致性(Consistency):指事务的运行并不改变数据库中数据的一致性.例如,完整性约束了a+b=10,一个事务改变了a,那么b也应该随之改变。
- 独立性(Isolation):事务的独立性也有称作隔离性,是指两个以上的事务不会出现交错执行的状态.因为这样可能会导致数据不一致。
- 持久性(Durability):事务的持久性是指事务执行成功以后,该事务所对数据库所作的更改便是持久的保存在数据库之中,不会无缘无故的回滚。
3、各组件
ZooKeeper为HBase集群中各进程提供分布式协作服务。各RegionServer将自己的信息注册到Zookeeper中,主用Master据此感知各个RegionServer的健康状态。
Client使用HBase的RPC机制与Master、RegionServer进行通信。Client与Master进行管理类通信,与RegionServer进行数据操作类通信。
RegionServer负责提供表数据读写等服务,是HBase的数据处理和计算单元。RegionServer一般与HDFS集群的Datanode部署在一起,实现数据的存储功能。
HMaster,在HA模式下,包含主用Master和备用Master。
- 主用Master:负责HBase中RegionServer的管理,包括表的增删改查;RegionServer的负载均衡,Region分布调整;Region分裂以及分裂后的Region分配;RegionServer失效后的Region迁移等。
- 备用Master:当主用Master故障时,备用Master将取代主用Master对外提供服务。故障恢复后,原主用Master降为备用。
HDFS为HBase提供高可靠的文件存储服务,HBase的数据全部存储在HDFS中。
Store:一个Region由一个或多个Store组成,每个Store对应图中的一个Column Family。
MemStore:一个Store包含一个MemStore,MemStore缓存客户端向Region插入的数据。
StoreFile:MemStore的数据flush到HDFS后成为StoreFile。
Hfile:HFile定义了StoreFile在文件系统中的存储格式,它是当前HBase系统中StoreFile的具体实现。
Hlog:HLog日志保证了当RegionServer故障的情况下用户写入的数据不丢失,RegionServer的多个Region共享一个相同的Hlog。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。