Hbase是一个以HDFS为数据存储的数据库,为了方便的随机,实时的插入查询才引入的Hbase,这个类似与google的BigTable,Hbase可以存储几十亿行,几百万列的表数据。当然是集群模式下的
Hbase特点:
1,创建表的时候不指定列,只指定若干个列族
2,插入数据是,列族中存储多个列(K-V)
3,一个Value可以有过个,这个是通过版本号来区分的
4,唯一确定一个字段的值,表名--行键--列族--列名(cell)--版本
Hbase的表存储机制
表存储机制说明
1,一个表的多行可以被分为一个region
2,一个Hregion中包含多个Hstore
3,一个Hstore中包含多个StoreFile
4,一个Hstore中包含一个HFile
5,一个region都分布在regionserver上,统一有Hmaster来调度
6,region最终对应到HDFS中的HFile
思考:数据都被分布式的以HFile的方式存储到了HDFS上面,那么查询的时候Hbase是怎么查找的呢?这就涉及到了Hbase的寻址机制,画图说明一下:
Hbase的寻址机制
寻址机制说明
1,Table使我们自己的数据表,Mate和root是系统表,表的存储都在是由Hregion来保存的,最终运行在regionServer上面
2,当client访问数据的时候,首先会访问zookeeper,找到HMaster和Root之后,就是找对应的regionServer上的region来读取响应的数据,并且客户端以及Hmaster都会将数据缓存起来
望指正,不吝赐教!
网友评论