微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Hbase-01-体系结构与数据模型概述

1. 简介

BigTable论文中称BigTable为"sparse,distributed, persistent multidimensional sorted map"可见BigTable本质上是一个Map结构数据库,HBase亦然,也是由一系列KV构成的。然而HBase这个Map系统却并不简单,有很多限定词——稀疏的、分布式的、持久性的、多维的以及排序的。

  • 多维:

      HBase中的Map与普通Map最大的不同在于,key是一个复合数据结构,由多维元素构成,包括rowkey、columnfamily、qualif ier、type以及timestamp。

  • 稀疏:

       稀疏性是HBase一个突出特点。从图1-3逻辑表中行"com.example.www"可以看出,整整一行仅有一列(people:author)有值,其他列都为空值。

  • 排序:

         构成HBase的KV在同一个文件中都是有序的,但规则并不是仅仅按照rowkey排序,而是按照KV中的key进行排序——先比较rowkey,rowkey小的排在前面;如果rowkey相同,再比较column,即column family:qualif ier,column小的排在前面;如果column还相同,再比较时间戳timestamp,即版本信息,timestamp大的排在前面。

  • 分布式:

         很容易理解,构成HBase的所有Map并不集中在某台机器上,而是分布在整个集群中。

2. Hbase 体系结构

Master-slave 结构

Master

Master主要职责:

  • 处理用户的各种管理请求,包括建表、修改表、权限操作、切分表、合并数据分片以及Compaction等。

  • 管理集群中所有RegionServer,包括RegionServer中Region的负载均衡、RegionServer的宕机恢复以及Region的迁移等。

  • 清理过期日志以及文件,Master会每隔一段时间检查HDFS中HLog是否过期、HFile是否已经被删除,并在过期之后将其删除

Zookeeper:

临时节点是指只要创建znode的会话处于活动状态就存在的znode,然后在会话结束时删除znode。

3. 数据模型

行式存储

  • 数据一次存储和检索的时候操作一行,因此如果只需要一行中的某些数据,就可能读取不必要的数据

  • 易于读写记录

  • 适用于 OLTP 系统

  • 与面向列的数据存储相比,典型的压缩机制提供的效果较差

  • 在执行适用于整个数据集的操作时效率不高,因此聚合是一个昂贵的操作

列式存储

  • 数据以列的形式存储和检索,因此,如果只需要一些数据,则只能读取相关数据。

  • 适用于OLTP系统

列族式存储

  • 从概念上来说,列簇式存储介于行式存储和列式存储之间,可以通过不同的设计思路在行式存储和列式存储两者之间相互切换。

参考:

https://www.netwoven.com/2013/10/10/hbase-overview-of-architecture-and-data-model/

https://www.dezyre.com/article/overview-of-hbase-architecture-and-its-components/295

https://data-flair.training/blogs/hbase-architecture/

https://www.edureka.co/blog/hbase-architecture/

https://towardsdatascience.com/hbase-working-principle-a-part-of-hadoop-architecture-fbe0453a031b

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐