设为首页 加入收藏

TOP

HBase的理论性总结
2018-11-13 15:32:18 】 浏览:33
Tags:HBase 理论性 总结
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bingdongguke/article/details/14101565

1.HBase的体系结构

主从服务器架构,有HReginon群和HBase Master服务器构成。HBase Master负责管理所有的HRegion服务器,所有的HRegion服务器通过Zookeeper来进行协调处理HBase 服务器运行期间的错误。HBase Master 不保存HBase中的任何数据,HBase 逻辑上表会被划分为多个HRgion,然后存储在HRgion服务器群。HBase Master存储的是从数据到HRegion 服务器的映射。

HBase表超设置值得大小时,会自动划分不同的区域,每个区域包含所有行的一个子集。从物理上来说,一张表被分成了多个块,每个块就是一个HRegion。用 表明+开始/结束主键来区分HRegion。一个HRegion会保存一个表里面的某段连续的数据,从开始主键到结束主键。一张完整的表示存在多个HRegion上面的。

一台机器一般只运行一个HRegion服务器,每一个区段的HRegion只会被一个HRegion服务器维护。

HRegion包含HLOG和HRegion。HLOG用来存储数据日志,采用先写日志的方式。HRegion存储实际的数据。HRegion由很多Store和MemStore组成,每个Store存储一个列簇数据(ColumnFamily)。数据来时先到达MemStore,超过阈值就会存储到相应的StoreFile(HFile)中。StoreFile(Hfile)为HBase中最小的单元。

HLOG 控制提交和恢复

HBase Master服务器的职责:

管理用户对Table的增删改查操作

管理HRegion服务器的负载均衡,调整HRegion分布

在HRegion分裂后,给新HRegion分配

在HRegion服务器停机后,负责失效HRegion服务器上的HRegion迁移

ROOT表和Meta表

主键范围是连续的,一般开始主键就可以表示相应的HRegion,每个HRegion有一个‘hregionId’,HRegion表示:表明+开始主键+ID 这就是元数据Meta。HRegion里面保存的这系列元素叫Meta表。

Root table保存了所有元数据的位置,Root 表不能被分割,永远只存在一个HRegion

元数据和跟数据表每行都保存了一个列簇:

info:regioninfo(一个串行化的HRegionInfo对象)

info:server(服务器地址字符串HServerAddress.toString())

info:startcode(用来给主服务器判断,HRegion服务器信息是否更改)

客户端根据Root表地址,就没必要连接主服务器,只处理超时HRegion服务器,再重启时候返回HRegion地址

2,HBase数据模型

数据模型---->(java类)

他是稀疏存储。索引是,行关键字、列关键字和时间戳。HBase里的数据都是字符串没有类型

列名字的格式 family:qualifier

Hbase的操作是琐行的

HBase说有数据库的更新都有一个时间戳标记。HBase根据这个作为版本保留依据。

概念视图

3.HBase 与RDBMS

数据类型:Hbase只有字符串类型,所有类型都交由用户自己处理。关系型数据库有丰富的类型选择和存储方式

数据操作:HBase只是简单地插入,查询,删除,清空等操作。表和表之间是分离的。

存储模式:HBase是基于列存储的,每个列簇有几个文件保存。传统数据库是基于表格和行模式存储

数据维护:HBase的更新,是添加新版本的数据,而不是关系数据库的替换更改

可伸缩性:可以比较轻松的增加删除硬件容错性比较高,关系型数据库可能要靠中间件

HBase更适合的是互联网应用需求和海量数据存储。比较适合开发wiki,archiveorg 类型的服务


4.与客户端的交互模式

分别是java API,Rest和Thrift接口


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇大数据开发进阶之HBase开发实例介.. 下一篇HBase在HDFS上的目录结构

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目