HBase基础
Posted 回忆过去,是最美好的事情。
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HBase基础相关的知识,希望对你有一定的参考价值。
HBase
1. 概念
- 建立在HDFS上,提供高可靠性、高性能、列存储、可伸缩、实时读写 的分布式数据库系统
- 在需要实时读写随机访问超大规模数据集时,可以使用HBase
2. HBase特点
- 海量存储
- 可以存储大批量数据
- 列式存储
- HBase表的数据是基于列族进行存储的,列族是在列的方向上进行存储
- 极易扩展
- 底层依赖HDFS,当磁盘空间不足时,只需动态增加datanode结点就可
- 可以通过服务器来对集群的存储进行扩容
- 高并发
- 支持高并发读写请求
- 稀疏
- 系统主要是针对HBase列的灵活性,在列族中,可以指定任意列,在列数据为空的情况下,不会占用存储空间
- 数据的多个版本
- HBase表的数据可以有多个版本值,默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
- 数据类型单一
- 所有的数据在HBase中是以字节数据进行存储
3. HBase数据类型
- rowKey 行键,table按照rowKey的字典序进行排序
- Column Family 列族
- HBase表中每列都归属于某个列族
- Column列
- 列是列族下的一个列,用
列族名:列名
,表示为info:name
- 列是列族下的一个列,用
- cell单元格
- 指定row key行键、列族、列,可以确定一个cell单元格
- cell中的数据是没有类型的,全部是以字节数组存储
- TimeStamp 时间戳
- 可以对表中的cell多次赋值,每次赋值操作时时间戳,可看做cell值的版本号,一个cell可以有多个版本值
4. HBase整体架构
- client客户端是操作HBase集群的入口
- 对管理类的操作,如表的增删改操作,Client通过RPC和HMaster通信完成
- 对表数据的读写操作,Client通过RPC和RegionServer交互,读写数据
- Client类型
- HBase shell
- Java编程接口
- Thrift、Avro、Rest等
- ZooKeeper集群
- 实现了HMaster的高可用,多HMaster间进行主备选举
- 保存了HBase的源信息meta表,提供了HBase表中region的寻址入口
- 对HMaster和HRegionServer实现了监控
- HMaster
- HBase集群也是主从架构,HMaster是主的角色
- 主要负责Table表和Region的相关管理工作
- 关于Table
- 管理Client对table的增删改操作
- 关于Region
- 在Region分裂后,负责新Region分配到指定的HRegionServer上
- 管理HRegionServer间的负责均衡,迁移region分布
- 当HRegionServer宕机之后,负责其上的region的迁移
- HRegionServer
- HBase集群中从的角色
- 作用
- 响应客户端的读写数据请求
- 负责管理一系列的Region
- 切分在运行过程中变大的Region
- Region
- HBase集群中分布式存储的最小单元
- 一个Region对应一个Table表中的部分数据
以上是关于HBase基础的主要内容,如果未能解决你的问题,请参考以下文章