HBase 初学者教程:什么是 HBase?3 天学会!
HBase 教程摘要
HBase 是一个面向列的数据库管理系统,运行在 HDFS(Hadoop 分布式文件系统)之上。在这个为初学者准备的 HBase 教程中,您将学习 Apache HBase 的基础知识和高级概念。本 HBase 课程包含了从介绍、安装、架构到高级内容的所有 HBase 基础知识。
什么是 HBase?
HBase 是 Hadoop 环境中的一个开源、面向列的分布式数据库系统。它最初是 Google Big Table,后来更名为 HBase,主要用 Java 编写。 Apache HBase 是实时大数据应用所必需的。
HBase 可以存储海量数据,从 TB 级别到 PB 级别。HBase 中的表包含数十亿行和数百万列。HBase 专为低延迟操作而构建,与传统关系模型相比具有一些特定功能。
HBase 培训大纲
以下是我们在本 Apache HBase 培训指南中涵盖的内容
👉 第 1 课 | HBase 架构 — HBase 架构、组件和数据模型 |
👉 第 2 课 | HBase 安装 — 在 Ubuntu 上安装 HBase |
👉 第 3 课 | HBase Shell 命令 — 通过示例学习 |
👉 第 4 课 | HBase 创建表 — 使用 Java API 在 HBase 中创建表的步骤 |
👉 第 5 课 | 在 HBase 中插入和检索数据 — get()、put()、scan() 示例 |
👉 第 6 课 | HBase 的性能瓶颈 — HBase 的优势和局限性 |
👉 第 7 课 | HBase 面试题 — 30 个最常见的 HBase 面试题及答案 |
您将在这个 HBase 初学者教程中学到什么?
在本 HBase 初学者教程中,您将学习什么是 Apache HBase、HBase 的架构、如何安装 HBase、在 HBase 中创建表的步骤、HBase 的优势和局限性等。
为什么要选择 HBase?
一个热门 Web 应用的表可能包含数十亿行。如果我们想从如此庞大的数据中搜索特定行,HBase 是理想的选择,因为查询获取时间更短。大多数在线分析应用都使用 HBase。
传统的关系数据模型无法满足超大型数据库的性能要求。Apache HBase 可以克服这些性能和处理限制。
Apache HBase 的特性
- HBase 专为低延迟操作而构建
- HBase 广泛用于随机读写操作
- HBase 以表的形式存储大量数据
- 在集群环境中提供线性和模块化的可扩展性
- 严格的读写操作一致性
- 表的自动和可配置分片
- Region Server 之间支持自动故障转移
- 方便的基类,用于支持 HBase 表中的 Hadoop MapReduce 作业
- 易于使用的 Java API 用于客户端访问
- 用于实时查询的块缓存和布隆过滤器
- 通过服务器端过滤器下推查询谓词。
NoSQL 数据库在 Hadoop 中的重要性
在大数据分析中,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 | 嵌套信息,对 JavaScript 友好 |
基于图 | OrientDB、Neo4J | 处理复杂的关系信息。建模和处理分类。 |
HBase 与 Hive
功能 | HBase | Hive |
---|---|---|
数据库模型 | 宽列存储 | 关系型数据库管理系统 |
数据模式 | 无模式 | 有模式 |
SQL 支持 | 否 | 是,它使用 HQL (Hive 查询语言) |
分区方法 | 分片 | 分片 |
一致性级别 | 立即一致性 | 最终一致性 |
二级索引 | 否 | 是 |
复制方法 | 可选择的复制因子 | 可选择的复制因子 |
HBase 与 RDBMS
在将 HBase 与传统关系数据库进行比较时,我们必须考虑三个关键领域。它们是数据模型、数据存储和数据多样性。
HBASE | RDBMS |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
摘要
HBase 提供了独特的功能,并将解决典型的工业用例。作为面向列的存储,它提供了快速查询、结果获取和大量数据存储。本课程是 HBase 的完整分步介绍。