HBase教程

HBase 教程

HBase 是一种类似于谷歌大表的数据模型,旨在提供对海量结构化数据的快速随机访问。本教程介绍了 HBase、在 Hadoop 文件系统上设置 HBase 的过程以及与 HBase shell 交互的方法。还介绍了如何使用java连接HBase,以及如何使用java对HBase进行基本操作。
自 1970 年以来,RDBMS 是数据存储和维护相关问题的解决方案。大数据出现后,公司意识到处理大数据的好处,并开始选择 Hadoop 等解决方案。
Hadoop 使用分布式文件系统来存储大数据,并使用 MapReduce 进行处理。 Hadoop 擅长存储和处理各种格式的海量数据,例如任意、半结构甚至非结构化数据。

Hadoop 的局限性

Hadoop 只能进行批处理,数据只能按顺序访问。这意味着即使是最简单的工作也必须搜索整个数据集。
一个巨大的数据集在处理时会产生另一个巨大的数据集,也应该按顺序处理。此时,需要一个新的解决方案来在单个时间单位内访问任意点的数据(随机访问)。

Hadoop 随机访问数据库

HBase、Cassandra、couchDB、Dynamo 和 MongoDB 等应用程序是一些存储大量数据并以随机方式访问数据的数据库。

什么是 HBase?

HBase 是一个构建在 Hadoop 文件系统之上的分布式面向列的数据库。它是一个开源项目,可横向扩展。
HBase 是一种类似于 Google 大表的数据模型,旨在提供对海量结构化数据的快速随机访问。它利用了 Hadoop 文件系统 (HDFS) 提供的容错能力。
它是 Hadoop 生态系统的一部分,提供对 Hadoop 文件系统中数据的随机实时读/写访问。
可以直接或通过 HBase 将数据存储在 HDFS 中。数据消费者使用 HBase 随机读取/访问 HDFS 中的数据。 HBase 位于 Hadoop 文件系统之上,提供读写访问权限。
HBase Flow

HBase 和 HDFS

HDFS HBase
HDFS 是一种适合存储大文件的分布式文件系统。 HBase 是建立在 HDFS 之上的数据库。
HDFS 不支持快速的单个记录查找。 HBase 为较大的表提供快速查找。
提供高延迟的批处理;没有批处理的概念。 它提供对来自数十亿条记录的单行的低延迟访问(随机访问)。
它只提供数据的顺序访问。 HBase 内部使用哈希表并提供随机访问,并将数据存储在索引的 HDFS 文件中以加快查找速度。

HBase 中的存储机制

HBase 是一个 面向列的数据库,其中的表按行排序。表模式只定义了列族,它们是键值对。一个表有多个列族,每个列族可以有任意数量的列。后续列值连续存储在磁盘上。表格的每个单元格值都有一个时间戳。简而言之,在 HBase 中:
表是行的集合。 Row 是列族的集合。 列族是列的集合。 列是键值对的集合。
下面给出的是 HBase 中表的示例架构。
Rowid Column Family Column Family Column Family Column Family
col1 col2 col3 col1 col2 col3 col1 col2 col3 col1 col2 col3
1
2
3

面向列和面向行

面向列的数据库是将数据表存储为数据列的部分而不是数据行的数据库。很快,它们就会有列族。
面向行的数据库 面向列的数据库
适用于在线交易流程(OLTP)。 适用于在线分析处理(OLAP)。
此类数据库专为少量行和列而设计。 面向列的数据库是为大表而设计的。
下图显示了面向列的数据库中的列族:
表格

HBase 和 RDBMS

HBase 关系型数据库
HBase 是无模式的,它没有固定列模式的概念;仅定义列族。 RDBMS 由其架构管理,架构描述了表的整个结构。
它是为宽表构建的。 HBase 是水平可扩展的。 它很薄,适合小桌子。难以扩展。
HBase 中没有事务。 RDBMS 是事务性的。
它有非规范化的数据。 它将具有标准化数据。
它适用于半结构化和结构化数据。 它适用于结构化数据。

HBase 的特性

HBase 可线性扩展。 它具有自动故障支持。 它提供一致的读取和写入。 它与 Hadoop 集成,作为源和目标。 它为客户端提供了简单的 Java API。 它提供跨集群的数据复制。

在何处使用 HBase

Apache HBase 用于对大数据进行随机、实时的读/写访问。 它在商品硬件集群之上托管非常大的表。 Apache HBase 是一种以 Google 的 Bigtable 为模型的非关系型数据库。 Bigtable 作用于 Google 文件系统,同样 Apache HBase 作用于 Hadoop 和 HDFS 之上。

HBase 的应用

每当需要编写繁重的应用程序时都会使用它。 每当我们需要提供对可用数据的快速随机访问时,就会使用 HBase。 Facebook、Twitter、Yahoo 和 Adob​​e 等公司在内部使用 HBase。

HBase 历史

活动
2006 年 11 月 Google 发布了关于 BigTable 的论文。
2007 年 2 月 最初的 HBase 原型是作为 Hadoop 贡献创建的。
2007 年 10 月 第一个可用的 HBase 与 Hadoop 0.15.0 一起发布。
2008 年 1 月 HBase 成为 Hadoop 的子项目。
2008 年 10 月 HBase 0.18.1 发布。
2009 年 1 月 HBase 0.19.0 发布。
2009 年 9 月 HBase 0.20.0 发布。
2010 年 5 月 HBase 成为 Apache 顶级项目。
昵称: 邮箱:
Copyright © 2022 立地货 All Rights Reserved.
备案号:京ICP备14037608号-4