微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

实时检索之HBase

1、概念

HBase是一个分布式的Nosql数据库,其特点高可靠、高性能、面向列、可伸缩。

  • 适合存储大表数据 ,并且可实时读写大表数据。大表:表的规模可以达到数十亿行以及数百万列
  • 表结构稀疏。稀疏:对于为空的列,并不占用存储空间
  • 数据底层存储于Hadoop HDFS分布式文件系统。
  • 利用ZooKeeper作为协同服务。

2、特点

HBase适合具有如下需求的应用:

  • 海量数据 (TB、PB) 。
  • 不需要完全拥有传统关系型数据库所具备的ACID特性。
  • 高吞吐量。
  • 需要在海量数据中实现高效的随机读取。
  • 需要很好的性能伸缩能力。
  • 能够同时处理结构化和非结构化的数据。

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] 举报,一经查实,本站将立刻删除。

相关推荐