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 中存在宽而稀疏的表
  • 数据库中包含窄表
  • 支持自动分区
  • 没有内置的分区支持
  • 非常适合 OLAP 系统
  • 非常适合 OLTP 系统
  • 从数据库中只读取相关数据
  • 一次检索一行,因此如果只需要行中的部分数据,可能会读取不必要的数据
  • 可以使用 HBase 存储和处理结构化和半结构化数据
  • 可以使用 RDBMS 存储和处理结构化数据
  • 支持对多行多列进行聚合
  • 聚合是昂贵的操作

摘要

HBase 提供了独特的功能,并将解决典型的工业用例。作为面向列的存储,它提供了快速查询、结果获取和大量数据存储。本课程是 HBase 的完整分步介绍。