飞道的博客

大数据技术——HBase简介

372人阅读  评论(0)

1. HBase定义

    HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。----是一个分布式存储系统

2. HBase数据模型

2.1 逻辑存储结构

    HBase 数据模型的关键在于稀疏、分布式、多维、排序的映射。其中映射 map指代非关系型数据库的 key-Value 结构。
    HBase 可以用于存储多种结构的数据,以 JSON 为例,存储的数据原貌为:

"row_key1":{
   
	"personal_info":{
   
		"name":"zhangsan",
		"city":"北京",
		"phone":"131********"
	},
	"office_info":{
   
		"tel":"010-1111111",
		"address":"atguigu"
	}
}

2.2 HBase 物理存储结构

物理存储结构即为数据映射关系,而在概念视图的空单元格,底层实际根本不存储。

  • 名词介绍
    • Name Space:命名空间,类似于关系型数据库的 database 概念,每个命名空间下有多个表。
    • Table:类似于关系型数据库的表概念。不同的是,HBase 定义表时只需要声明列族即可,不需要声明具体的列。因为数据存储时稀疏的,所有往 HBase 写入数据时,字段可以动态、按需指定。因此,和关系型数据库相比,HBase 能够轻松应对字段变更的场景
    • Row:HBase 表中的每行数据都由一个 RowKey 和多个 Column(列)组成,数据是按照 RowKey的字典顺序存储的,并且查询数据时只能根据 RowKey 进行检索,所以 RowKey 的设计十分重要。
    • Column:HBase 中的每个列都由 **Column Family(列族)和 Column Qualifier(列限定符)**进行限定,例如 info:name,info:age。建表时,只需指明列族,而列限定符无需预先定义。—列族+属性名
    • Time Stamp:用于标识数据的不同版本(version),每条数据写入时,系统会自动为其加上该字段,其值为写入 HBase 的时间。—最近一次数据更新
    • Cell:由{rowkey, column Family:column Qualifier, timestamp} 唯一确定的单元。cell 中的数据全部是字节码形式存贮

3. HBase基础架构

  • 架构角色
    • Master:实现类为 HMaster,负责监控集群中所有的 RegionServer 实例
      • 管理元数据表格 hbase:meta,接收用户对表格创建修改删除的命令并执行
      • 监控 region 是否需要进行负载均衡,故障转移和 region 的拆分。
    • Region Server
      • 负责数据 cell 的处理,例如写入数据 put,查询数据 get 等
      • 拆分合并 region 的实际执行者,有 master 监控,有 regionServer 执行。
    • Zookeeper
      • HBase 通过 Zookeeper 来做 master 的高可用、记录 RegionServer 的部署信息、并且存储有 meta 表的位置信息。
      • HBase 对于数据的读写操作时直接访问 Zookeeper 的,在 2.3 版本推出 MasterRegistry模式,客户端可以直接访问 master。使用此功能,会加大对 master 的压力,减轻对 Zookeeper的压力。
    • HDFS
      • HDFS 为 Hbase 提供最终的底层数据存储服务,同时为 HBase 提供高容错的支持。

转载:https://blog.csdn.net/weixin_44606952/article/details/128479441
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场