HBase 初学者教程:什么是 HBase?3 天学会!
HBase 教程摘要
什么是 HBase?
HBase 是一个开源的、面向列的分布式数据库系统, Hadoop的 环境。最初是 Google Big Table,后来改名为 HBase,主要用 Java. 阿帕奇 实时大数据应用需要HBase。HBase 可以存储从 TB 到 PB 级的海量数据。HBase 中的表由数十亿行和数百万列组成。HBase 专为低延迟操作而构建,与传统关系模型相比具有一些特定功能。 阅读全文...
HBase 培训大纲
以下是我们在本 Apache HBase 培训指南中涵盖的内容
| 👉 Less上1 | ArchiHBase的架构 — HBase Archi结构、组件和数据模型 |
| 👉 Less上2 | HBase 安装 — HBase 安装 Ubuntu |
| 👉 Less上3 | HBase Shell 命令 — 通过实例学习 |
| 👉 Less上4 | HBase 创建表 — 使用以下方法在 HBase 中创建表 Java API |
| 👉 Less上5 | 在 HBase 中插入和检索数据 — get()、put()、scan() 示例 |
| 👉 Less上6 | HBase 中的性能瓶颈 — HBase 的优势和局限性 |
| 👉 Less上7 | Hbase 面试问题 — 30 个最常问的 Hbase 面试问题和答案 |
您将在本 HBase 初学者教程中学习什么?
在本 HBase 初学者教程中,您将了解什么是 Apache HBase, ArchiHBase 的架构,如何安装 HBase,在 HBase 中创建表的步骤,HBase 的优势和局限性等。
为什么选择 HBase?
一个流行的 Web 应用程序的表可能包含数十亿行。如果我们想从如此大量的数据中搜索特定行,HBase 是理想的选择,因为查询获取时间更短。大多数在线分析应用程序都使用 HBase。
传统的关系数据模型无法满足超大型数据库的性能要求。Apache HBase 可以克服这些性能和处理限制。
Apache HBase 功能
- HBase 专为低延迟操作而构建
- HBase 广泛用于随机读写操作
- HBase 以表的形式存储大量数据
- 在集群环境中提供线性和模块化的可扩展性
- 读写操作严格一致
- 自动和可配置的表分片
- Region Server 之间的自动故障转移支持
- 方便的支持基类 Hadoop MapReduce HBase 表中的作业
- 操作简单 Java 客户端访问API
- 用于实时查询的块缓存和布隆过滤器
- 查询谓词通过服务器端过滤器向下推送。
Hadoop 中 NoSQL 数据库的重要性
在大数据分析中, Hadoop的 通过管理大型数据集在解决典型的业务问题中发挥着至关重要的作用,并在分析领域提供最佳解决方案。
在 Hadoop 生态系统中,每个组件都发挥着独特的作用,
-
数据处理
-
数据验证
-
数据存储
在存储非结构化、半结构化数据以及检索此类数据方面,关系数据库用处不大。此外,通过对存储在 Hadoop 存储中的大型数据集应用查询来获取结果是一项具有挑战性的任务。NoSQL 存储技术为快速查询大型数据集提供了最佳解决方案。
其他 NoSQL 存储类型数据库
市场上存在的一些 NoSQL 模型包括 Cassandra, MongoDB和 CouchDB. 每种模型都有不同的存储机制方式。
例如, MongoDB 是 NoSQL 家族中的面向文档的数据库。与传统数据库相比,它在性能、可用性和可扩展性方面提供了最佳功能。它是一个开源面向文档的数据库,使用 C++.
Cassandra 也是一个来自开源 Apache 软件的分布式数据库,旨在处理存储在商品服务器上的大量数据。 Cassandra 提供高可用性,无单点故障。
而 CouchDB 是一个面向文档的数据库,其中每个文档字段都存储在键值映射中。
HBase 与其他 NoSQL 模型有何不同
HBase 存储模型与上面讨论的其他 NoSQL 模型不同。这可以表述如下。
-
HBase 以列式模型以键/值对的形式存储数据。在此模型中,所有列都分组为列族。
-
HBase 提供了灵活的数据模型和对存储在大型数据集中的少量数据的低延迟访问。
-
Hadoop 上的 HBase 将提高分布式集群设置的吞吐量和性能。反过来,它提供了更快的随机读写操作。
选择哪个 NoSQL 数据库?
MongoDB, CouchDB和 Cassandra 是 NoSQL 类型的数据库,具有特定功能并根据业务需求使用。在这里,我们根据用例列出了不同的 NoSQL 数据库。
| 基于特征的数据库类型 | 数据库示例 | 用例(何时使用) |
|---|---|---|
| 核心价值 | Redis、MemcacheDB | 缓存、排队、分发信息 |
| 面向列 | Cassandra, HBase | 扩展、保持非结构化、非易失性 |
| 文档导向 | MongoDB, Couchbase | 嵌套信息, Java脚本友好 |
| 基于图的 | OrientDB, Neo4J | 处理复杂的关系信息。建模和处理分类。 |
HBase 与 Hive
| 特征 | HBase的 | 蜂房 |
|---|---|---|
| 数据库模型 | 宽列存储 | 关系型数据库管理系统 |
| 数据模式 | 无模式 | 带架构 |
| SQL 支持 | 没有 | 是的,它使用 HQL(Hive 查询语言) |
| 分区方法 | 拆分 | 拆分 |
| 一致性级别 | 立即一致性 | 最终一致性 |
| 二级索引 | 没有 | 是 |
| 复制方法 | 可选择的复制因子 | 可选择的复制因子 |
HBase 与 RDBMS
在将 HBase 与传统关系数据库进行比较时,我们必须考虑三个关键领域。即数据模型、数据存储和数据多样性。
| HBASE | RDBMS |
|---|---|
| • 数据库中的无模式 | • 数据库中具有固定模式 |
| • 列式数据库 | • 面向行的数据存储 |
| • 旨在存储非规范化数据 | • 设计用于存储规范化数据 |
| • HBase 中存在宽表和稀疏填充表 | • 数据库中包含精简表 |
| • 支持自动分区 | • 没有内置的分区支持 |
| • 非常适合 OLAP 系统 | • 非常适合OLTP系统 |
| • 仅从数据库中读取相关数据 | • 每次只检索一行数据,因此如果只需要某一行中的部分数据,则可能会读取不必要的数据。 |
| • HBase 可用于存储和处理结构化和半结构化数据。 | • 可以使用关系数据库管理系统 (RDBMS) 存储和处理结构化数据。 |
| • 支持对多行和多列进行聚合 | • 聚合是一项成本高昂的操作 |
结语
HBase 提供独特的功能,可解决典型的工业用例。作为面向列的存储,它提供快速查询、结果获取和大量数据存储。本课程是对 HBase 的完整分步介绍。
