HBase学习笔记--HBase初识

回答三个问题:
1.HBase是做什么的?
2.HBase和其他数据库有什么区别?
3.HBase的包含什么模块,它的结构是什么样子?

HBase是做什么的?

hbase官网
通过构建一个表,来实现随机实时读写HDFS
支持大表:10亿行级别和100万列级别表。
随机访问
实时读写
分布式(强一致性读写,自动恢复)
多版本
高并发(存疑)
非关系型

HDFS支持随机访问吗?
HDFS文件不支持随机写入,只支持追加写。(HDFS部分学习)
HDFS支持实时读写吗?
HDFS不支持低延时的数据访问。
非关系型,就是不存在固定的表结构。(not only sql)

根据不能支持就加一层的思路,HBase肯定是在HDFS上面加了一些东西,从而支持了上述的特点。在官网介绍上,还没有看到高并发的论述,这里先存一个疑。

HBase和其他数据库有啥区别

数据块存储结构
存储结构:B树,LSM树。
B树的结构式B树做索引,行存做存储。特点在于读快写慢
LSM树,推迟和批量修改。先写到内存中,然后flush到磁盘,到一定的情况下,再进行合并优化读性能。

HBase的优势和Hadoop紧密绑定,它的高可拓展性,可以在保证数据一致性的同时,提供高性能。
这点先这么看吧,和hdfs紧密绑定,咋紧密了,别的就不可以读写hdfs了吗?主要应该是扩展性好吧?生态好吧?
MongoDB,Cassandra之后学习了再对比~

HBase使用场景

数据量大,否则没有发挥分布式的优势。
没有RDBMS要求,比如事务,二级索引,高级查询语言。(这部分要看看phoenix)

HBase数据模型

为了支持HBase功能,需要在数据结构和模块上进行设计。
HBase Data模型

逻辑视图

表结构在这里插入图片描述

物理视图

物理上也是一个k-v结构,key是row key + time stamp + column family + type + column value是内容,一个列簇存到一起。
在这里插入图片描述

NameSpace

用来对逻辑上的db进行分组,从而可以进行多租配额,访问控制,RS隔离等。

Versions

用来支持多版本,log类型的。存储时需要倒序排列。

ACID

HBase支持行更新的原子性。
支持Read Commit隔离级别

HBase模块组成

CataLog Table

也是一个hbase的表,k-v结构,作用是快速通过table的rowkey信息,定位到region,regionServer信息,regionServer进行读写操作。

key
    table,region start key,region id
value
   info: regioninfo 序列化的RegionInfo信息
   info: server
   info: serverstartCode

表的region如果变大,需要分裂,这时候value会增加分裂后的字段。

啥时候失效更新?如何更新?

HBase客户端

提供接口,JAVA API,Thrift Rest API,Map Reduce接口
支持DML,DDL操作
HBase读取数据时,先定位RegionServer,然后发送请求到RegionServer。这里面需要一个索引来定位,这个索引就是元数据。
如果元数据失效了,那么就直接访问meta表。
为了提高写效率,支持批量和缓存。
为了提高读效率,支持filter。

Master

作用是处理RegionServer接口,元数据变动。
region assingn,server crash,balance等都需要Master参与。

RegionServer

服务和管理Region,一般和datanode放一起。
协处理器,regionServer上执行用户的代码。

Region

存储列簇(Column Family),可用性和分布式的基本元素。
一个regionServer管理20-200个region,每个region(5-20Gb)

Region数不能太多的原因:
region读写需要缓存;
可能master负载高;
影响MR tasks个数。

Zookeeper

Master高可用
hbase:meta存储
RegionServer宕机恢复
分布式锁

【下一个小节装一个hbase单机版】

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值