One.什么是Hbase?
阿帕奇HBASE是Hadoop数据库,一个分布式的,可伸缩的,大数据存储。
主要是对大数据进行随机、实时读写访问,这个项目的目标是在商品硬件集群之上托管非常大的表-数十亿行X百万列-。ApacheHBASE是一个开源的、分布式的、版本化的、非关系数据库,它是模仿google的Bigtable:一种结构化数据的分布式存储系统.正如BigTable利用Google文件系统提供的分布式数据存储一样,ApacheHBASE在Hadoop和HDFS之上提供了类似BigTable的功能。
Two.Hbase的特征
线性和模块化可伸缩性。
严格一致的读写。
表的自动可配置分块
区域服务器之间的自动故障转移支持。
使用ApacheHBASE表支持HadoopMapReduce作业的方便基类。
易于使用JavaAPI进行客户端访问。
用于实时查询的块缓存和Bloom过滤器。
通过服务器端筛选器向下推查询谓词
节省网关和支持xml、protobuf和二进制数据编码选项的REST式web服务。
可扩展的基于JRuby的shell(JIRB)
支持通过Hadoop度量子系统将度量导出到文件或Ganglia;或通过JMX
Three.Hbase的表结构
Hbase也被称为列式存储数据库,所以说它独有个东西叫做列族,列族下面可以有多个列,存几个列由你决定,然后由一个叫做rowkey(行键)的东西来标识唯一一条记录,相同的rowkey是一条记录,而且rowkey不能为null
Four.Hbase的体系架构
Hbase同样是基于hdfs之上的数据库,所以Hbase的结构也是主从架构,分为主节点和从节点.hbase的主节点角色名叫做HMaster,从节点角色名叫做RegionServer, 在RegionServer中存储数据的是若干个Region,每个region存储数据都是先从内存:memstore写入文件写入到Store File中(每个Store File 对应一个列族),然后再由若干个Store File存入到Hfile,然后这个Hfile才是真正存储到hdfs上的文件,hbase存储的表最终在hdfs上还是以目录形式存在的,hbase的数据最终还是以这个目录中的文件的形式存储在hdfs上.
Five.Hbase数据存储的过程
Hbase数据存储的过程也是数据分裂的过程,因为随着我们的数据不断的存入hbase中,这些数据存储在一个Region下,但是随着数据的不断的存储,肯定会导致RegionServer存不下,那么这个时候就会导致这个region分裂,分裂成若干个小region,然后再把这些小region存储在不同的regionServer下
领取专属 10元无门槛券
私享最新 技术干货