题目
HBase 是什么?HBase 特点
答案
HBase 是一个建立在 Hadoop 文件系统(HDFS)之上的高可靠性、高性能、面向列、可伸缩的分布式 NoSQL 数据库。
**设计背景**:
随着互联网发展,数据量呈爆炸式增长,传统关系型数据库在处理海量数据时,在扩展性、读写性能等方面面临挑战。HBase 基于 Google 的 Bigtable 论文设计而来,旨在满足大规模数据存储和实时读写的需求,是 Hadoop 生态系统的重要组成部分。
**主要特点**:
1. 高可靠性:数据存储在 HDFS 上,HDFS 本身具有多副本机制,可自动处理节点故障,保证数据不会丢失。
2. 高性能:采用列式存储,适合随机读写,能快速定位和访问特定列的数据。同时,利用 MemStore 和 HFile 机制,提升读写性能。
3. 可扩展性:支持水平扩展,可通过添加节点来扩展存储容量和处理能力,应对不断增长的数据量和访问请求。
4. 面向列存储:数据按列族组织,同一列族的数据存储在一起,在处理稀疏数据时效率高。
5. 稀疏性:对于空列不占用存储空间,节省资源。
6. 线性扩展:集群规模可线性扩展,添加节点后系统性能也能相应提升。
**架构组件**:
- HMaster:负责管理集群,包括表的创建、删除、修改,Region 的分配和负载均衡等。
- RegionServer:负责处理客户端的读写请求,管理分配给它的 Region,将数据存储在 HDFS 上。
- Region:表按行键范围划分为多个 Region,是 HBase 数据分布式存储的基本单元。
- ZooKeeper:协调 HBase 集群,保存集群的元数据,监控 RegionServer 的状态,帮助 HMaster 进行故障转移。
**应用场景**:
1. 实时读写场景:如实时推荐系统,可快速读取用户历史行为数据并实时推荐商品。
2. 海量数据存储:适用于日志记录系统,存储大量的日志数据并支持快速查询。
3. 稀疏数据处理:物联网设备产生的大量稀疏数据,HBase 能高效存储和处理。
