HBase是一个面向列的数据库,在表中它由行排序。表模式定义只能列族,也就是键值对。一个表有多个列族以及每一个列族可以有任意数量的列。后续列的值连续地存储在磁盘上。表中的每个单元格值都具有时间戳。表是行的集合,行是列族的集合,列族是列的集合,列是键值对的集合。
为什么需要使用HBase做海量业务数据的存储
1、扩展性强、容量大,支持百亿行、百万列数据的存储。HBase底层基于HDFS,可动态增加节点
2、高可靠性,WAL机制保证数据的安全性,Replication机制保证集群的数据容灾能力
3、高性能,实时读写。由于底层的LSM数据结构和RowKey有序排序,HBase具备较好的随机读取性能,RowKey的查询可达毫秒级响应
4、稀疏性、面向列存储,空列不占空间,且可动态添加,独立检索
5、支持多版本,每列的数据可存储多个版本,这一特性使得HBase能比较轻松的实现类似用户历史记录的功能
6、可支持丰富的应用场景
金融风控场景、海量数据存储及分析、实时个性推荐场景、物联网时空时序场景、社交feeds场景、分布式图处理场景、极速小对象存储场景、海量数据模糊查询场景、游戏日志处理场景、视频数据存储场景、实时数据分析场景
主从式架构
主服务器
分配区域给区域服务器并在Apache ZooKeeper的帮助下完成这个任务。
处理跨区域的服务器区域的负载均衡。它卸载繁忙的服务器和转移区域较少占用的服务器。
通过判定负载均衡以维护集群的状态。
负责模式变化和其他元数据操作,如创建表和列。
区域服务器
与客户端进行通信并处理数据相关的操作。
句柄读写的所有地区的请求。
由以下