图解HBase--大数据平台技术栈
副标题[/!--empirenews.page--]
HBase简介 HBase是一个分布式的、面向列的开源数据库存储系统,是对Google论文BigTable的实现,具有高可靠性、高性能和可伸缩性,它可以处理分布在数千台通用服务器上的PB级的海量数据。BigTable的底层是通过GFS(Google文件系统)来存储数据,而HBase对应的则是通过HDFS(Hadoop分布式文件系统)来存储数据的。 HBase不同于一般的关系型数据库,它是一个适合于非结构化数据存储的数据库。HBase不限制存储的数据的种类,允许动态的、灵活的数据模型。HBase可以在一个服务器集群上运行,并且能够根据业务进行横向扩展。 HBase特点 ![]() 海量存储:HBase适合存储PB级别的海量数据,在PB级别的数据以及采用廉价PC存储的情况下,能在几十到百毫秒内返回数据。这与HBase的记忆扩展性息息相关。正是因为HBase的良好扩展性,才为海量数据的存储提供了便利。 列式存储:列式存储,HBase是根据列族来存储数据的。列族下面可以有非常多的列,列族在创建表的时候就必须指定,而不用指定列。 极易扩展:HBase的扩展性主要体现在两个方面,一个是基于上层处理能力(RegionServer)的扩展,一个是基于存储能力(HDFS)的扩展。 高并发:目前大部分使用HBase的架构,都是采用廉价PC,因此单个IO的延迟其实并不小,一般在几十到上百ms之间。这里说的高并发,主要是在并发的情况下,HBase的单个IO延迟下降并不多。 稀疏:稀疏主要是针对HBase列的灵活性,在列族中,可以指定任意多的列,在列数据为空的情况下,是不会占用存储空间。 HBase与关系型数据库对比 ![]() HBase数据模型
![]() 物理视图 在物理存储上,数据是以Key-Vaule对形式存储,每个Key-Value只存储一个Cell里面的数据,不同的列族存储在不同的文件中,每个逻辑单元格(Cell)会对应一行数据,有Timestamp标记版本,每次插入、删除都会生成一行数据(append-only,写效率高)。 ![]() ![]() HBase体系架构 HBase的服务器体系结构遵循简单的主从服务器架构,一般一个HBase集群由一个Master服务(高可用的话,至少两个)和1个或多个RegionServer服务组成。Master服务负责维护表结构信息,实际的数据是保存在RegionServer上,最终RegionServer保存的表数据会直接存储在HDFS上。HBase的体系架构图如下图所示: ![]() Master HBase的管理节点,在一个集群中Master一般是主备的,主备的选择是由Zookeeper实现的。 HBase Master主要职责:
RegionServer RegionServer主要负责服务和管理Region。在分布式集群中,建议RegionServer和DataNode按照1:1比例部署,这样RegionServer中的数据文件可以存储一个副本于本机的DataNode节点中,从而在读取数据时可以利用HDFS的"短路径读取(Short Circuit)"来绕过网络请求,降低读延时。 RegionServer内部管理一个或多个Region。Region许多Store组成。每个Store对用Table中的一个列族存储,即一个Store管理一个Region上的一个列族。每个Store包含一个MemStore和0到多个StoreFile。 RegionServer的主要职责:
Zookeeper HBase通过Zookeeper来做Master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:
HDFS (编辑:晋中站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |