- HBase基于Google的BigTable论文是建立的HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写的分布式数据库系统
- 在需要实时读写随机访问超大规模数据集时,可以使用HBase
-
- HBase表的数據是基于列族进行存储的,列族是在列的方向上的划分
-
- 底层依赖HDFS,当磁盘空间不足的时候只需要动态增加datanode节点就可以了
- 可以通过增加垺务器来对集群的存储进行扩容
-
- 稀疏主要是针对HBase列的灵活性,在列族中你可以指定任意多的列,在列数据为空的情况下是不会占用存儲空间的。
-
- HBase表中的数据可以有多个版本值默认情况下是根据版本号去区分,版本号就是插入数据的时间戳
-
- 所有的数据在HBase中是以字节数组進行存储
- 对于管理类的操作如表的增、删、改操纵,Client通过RPC与HMaster通信完成
-
实现了HMaster的高可用多HMaster间进行主备选举
-
保存了HBase的元数据信息meta表,提供叻HBase表中region的寻址入口的线索数据
- HBase集群也是主从架构HMaster是主的角色,是老大
- 主要负责Table表和Region的相关管理工作:
-
HBase集群中从的角色
-
- 响应客户端的读写數据请求
- 负责管理一系列的Region
- 切分在运行过程中变大的region
- HBase集群中分布式存储的最小单元
- 一个Region对应一个Table表的部分数据
- table的主键table中的记录按照rowkey 的字典序进行排序
- HBase表中的每个列,都归属与某个列族
- 列族是表的schema的一部分(而列不是)即建表时至少指定一个列族
- 列肯定是表的某一列族下的一個列,用
列族名:列名
表示如info
列族下的name
列,表示为info:name
- 属于某一个ColumnFamily,类似于我们mysql当中创建的具体的列
- 指定row key行键、列族、列可以确定的一个cell单元格
- cell中的数据是没有类型的,全部是以字节数组进行存储
- 即一个Cell可以有多个版本的值
3、配置hbase的环境变量