先决条件 – Hadoop 简介
HBase是一种类似于谷歌大表的数据模型。它是一个开源的分布式数据库,由Apache软件基金会开发,用Java编写。 HBase 是我们 Hadoop 生态系统的重要组成部分。 HBase 运行在 HDFS(Hadoop 分布式文件系统)之上。它可以存储从 TB 到 PB 的海量数据。它是面向列和水平可扩展的。
HBase 的特点——
- 它可以跨多个节点线性扩展,也可以模块化扩展,因为它跨多个节点划分。
- HBase 提供一致的读写。
- 它在一个读或写过程中提供原子读写手段,防止所有其他进程执行任何读或写操作。
- 它为客户端访问提供了易于使用的Java API。
- 它支持用于支持 XML、Protobuf 和二进制数据编码选项的非 Java 前端的 Thrift 和 REST API。
- 它支持用于实时查询和大量查询优化的块缓存和布隆过滤器。
- HBase 提供 Region Servers 之间的自动故障支持。
- 它支持使用 Hadoop 指标子系统将指标导出到文件。
- 它不会强制您的数据内的关系。
- 它是一个用于存储和检索随机访问数据的平台。
Facebook Messenger 平台使用的是 Apache Casandra,但它在 2010 年 11 月从 Apache Cassandra 转移到了 HBase。Facebook 试图构建一个可扩展且强大的基础设施,以将消息、电子邮件、聊天和 SMS 等服务处理成实时对话,这就是为什么HBase 最适合这种情况。
RDBMS 与 HBase –
- RDBMS 主要是面向行的,而 HBase 是面向列的。
- RDBMS 具有固定模式,但在 HBase 中,我们也可以在运行时扩展或添加列。
- RDBMS 适用于结构化数据,而 HBase 适用于半结构化数据。
- RDBMS 针对连接进行了优化,但 HBase 并未针对连接进行优化。