
我们的Apache HBase的教程将帮助您清楚地了解HBase。我们已经介绍了HBase的所有基本和高级概念。我们设计本教程的方式可以为初学者和专业人士提供帮助。
本教程将帮助您了解HBase的所有基本概念以及各种相关主题,例如 什么是HBase,HBase历史记录,HBase体系结构,HBase组件,为什么使用Hbase等
先决条件
学习HBase的概念没有特殊要求。您只需要对使用终端和应用程序有一些基本的了解。但是,在Apache HBase的教程下,我们有一系列精心组织的主题,可以帮助您从头开始学习HBase概念。
听众
教程伴侣上的教程旨在帮助初学者和专业人士。我们的HBase教程将帮助初学者掌握HBase。
问题
我们的教程是由专业人士设计的,我们向您保证不会发现任何问题。如果有任何错误,我们要求您使用 联系表.
您将学到什么
什么是Apache HBase的?
Apache HBase的 是在HDFS之上运行的分布式,可伸缩,非关系(NoSQL)大数据存储。它是一个开源数据库,提供对Hadoop数据的实时读取/写入访问。它是面向列的并且可以水平扩展。 HBase的可以托管非常大的表,例如数十亿行和数百万列。它可以合并使用各种不同结构和方案的数据源。 HBase的能够存储从TB到PB的大量数据。
HBase的是一种类似于Google大表的数据模型,最初被称为Google Big Table。它支持快速随机访问大量结构化数据。之后,它被重命名为HBase,主要用Java编写。
HBase的的历史
The HBase的 story began 在 2006. The San Francisco-based startup Powerset started 加工 to build a natural language search engine for the Web. Then, 在 early 2007, 迈克·卡法雷拉(Mike Cafarela) 将三十多个Java文件的压缩文件放入Hadoop问题跟踪器,并添加:”I’为HBase(类似BigTable的文件存储)编写了一些代码。它’并不完美,但是’准备好让其他人玩耍并研究.”
吉姆·凯勒曼(Jim Kellerman)接过麦克’s转储并开始处理差距。他添加了许多测试以使其成形,以便可以将其作为Hadoop的一部分提交。 Doug Cutting于2007年4月3日在contrib子目录下首次成功提交了HBase代码。后来,第一个HBase“working”该版本于2007年10月作为Hadoop 0.15.0的一部分捆绑在一起。HBase在2010年成为Apache的顶级项目。
Apache Hbase架构
Apache HBase的包含原始Google Bigtable论文的所有功能,例如内存中操作,Bloom过滤器, 和压缩。 MapReduce处理数据后,此数据库的组件既可以用作Hadoop生态系统上MapReduce作业的输入,也可以用作输出。可以通过Java API或REST API甚至Thrift和AVRO网关访问数据。

HBase的是面向列的键值数据存储,可与Hadoop处理的数据配合使用。在执行读/写操作时,它相对较快,即使数据集很大,也不会降低质量。因此,由于其高性能和低输入/输出等待时间而被企业广泛使用。它不是SQL数据库的替代品,但是最好在HBase之上有一个SQL层。以便可以与各种商业智能和分析工具集成。
HBase的的组成
HMaster,HRegion和 地区 是HBase的主要组件。
大师
大师是一个主服务器,用于监视群集中的所有区域服务器。它将区域(表)分配给区域服务器,并处理多个区域服务器之间的负载平衡。
区域
区域 Server是一台从属服务器,负责服务和管理区域。每个区域服务器都有责任为一组区域提供服务。
地区
区域存储表数据的子集。如果一个表太大,该表将被划分为多个区域。
为什么要使用HBase?
HBase的通过在群集上运行来支持大量数据。 HBase的旨在同时访问和存储数据。数据自动分布在整个群集中。分片将不同的数据划分到多个服务器上。每个服务器都作为数据子集的源。一起访问分布式数据,这使缩放过程更快。
HBase的可以托管非常大的表,以进行交互式和批处理分析。存储多结构或稀疏数据是一个很好的选择。当需要对大数据进行随机,实时读写访问时,可以使用Apache HBase的。它与Hadoop本机集成,并且可以与其他数据访问引擎(例如, Apache Spark,Apache Hive和MapR数据库.
在任何流行的Web应用程序中,一个表都可能包含数十亿行。如果需要从如此大量的数据中搜索特定行,则HBase是理想的选择。大多数在线分析应用程序更喜欢HBase。许多传统的数据模型无法满足超大型数据库的性能要求,而Apache HBase的可以克服这些性能要求。
HBase的如何工作?
HBase的通过要求所有表都具有主键来线性缩放数据。密钥空间分布在顺序的块中,然后分配给一个区域。 地区Servers保留一个或多个区域,因此总负载在群集中平均分配。每当在一个区域内访问密钥时,HBase都可以通过再次拆分来进一步自动划分该区域,因此不需要手动数据分片。
HMaster和ZooKeeper服务器向客户端提供有关群集拓扑的信息。客户端进一步连接到这些客户端并下载RegionServer列表。 地区Servers由memstore组成,用于将频繁访问的行缓存在内存中。
HBase的的优势
• 它可以跨各种节点线性和模块化地扩展。它提供了无缝,快速的扩展以满足额外的需求。
• 它包含完全分布式的体系结构,并且可以处理超大规模数据。
• 它具有很高的安全性,并且可以轻松管理数据。
• 它提供了前所未有的高写入吞吐量。
• 它可以用于结构化和半结构化数据类型。
• HBase的提供一致的读/写操作。
• 当你不穿的时候很好用’需要完整的RDBMS功能。
• 它提供原子读取和写入操作,这意味着在一次读取或写入操作期间;所有其他进程均停止进行任何读或写操作。
• 它支持用于客户端访问的Java API。
• 表分片易于配置和自动化。
• 客户端访问与Java API是无缝的。
• 它为非Java前端提供Thrift和REST API支持,该前端支持其他编码选项,例如XML,Protobuf和二进制数据编码。
• 块缓存和Bloom过滤器可以访问它,以进行实时查询和大量查询优化。
• HBase的在区域服务器之间提供了自动故障支持。
• 它支持通过Hadoop指标子系统将指标导出到文件。
• 它没有 ’在数据中建立关系。
• 它支持通过随机访问来存储和检索数据。
• 可以使用HBase表备份MapReduce作业。
• 它包含完全分布式的体系结构,并且可以处理超大规模数据。
• 它具有很高的安全性,并且可以轻松管理数据。
• 它提供了前所未有的高写入吞吐量。
• 它可以用于结构化和半结构化数据类型。
• HBase的提供一致的读/写操作。
• 当你不穿的时候很好用’需要完整的RDBMS功能。
• 它提供原子读取和写入操作,这意味着在一次读取或写入操作期间;所有其他进程均停止进行任何读或写操作。
• 它支持用于客户端访问的Java API。
• 表分片易于配置和自动化。
• 客户端访问与Java API是无缝的。
• 它为非Java前端提供Thrift和REST API支持,该前端支持其他编码选项,例如XML,Protobuf和二进制数据编码。
• 块缓存和Bloom过滤器可以访问它,以进行实时查询和大量查询优化。
• HBase的在区域服务器之间提供了自动故障支持。
• 它支持通过Hadoop指标子系统将指标导出到文件。
• 它没有 ’在数据中建立关系。
• 它支持通过随机访问来存储和检索数据。
• 可以使用HBase表备份MapReduce作业。
HBase的的缺点
• HBase的不完全支持部分密钥。
• 在HBase中’很难存储大尺寸的二进制文件。
• HBase的的存储提供了有限的实时查询和排序。
• 每个表只允许一个默认排序。
• 不同用户从Apache HBase的访问数据的安全性改进缓慢。
• 根据使用键值搜索表内容的范围查找和键查找,键值限制了实时执行的查询。
• HBase的中不存在默认索引。程序员必须定义几行代码或脚本才能在HBase中执行索引功能。
• 就硬件要求和内存块分配而言,这是昂贵的。
• 当我们要将数据从RDBMS(关系数据库管理系统)外部源迁移到HBase服务器时,HBase将需要新的设计。
• 在HBase中’很难存储大尺寸的二进制文件。
• HBase的的存储提供了有限的实时查询和排序。
• 每个表只允许一个默认排序。
• 不同用户从Apache HBase的访问数据的安全性改进缓慢。
• 根据使用键值搜索表内容的范围查找和键查找,键值限制了实时执行的查询。
• HBase的中不存在默认索引。程序员必须定义几行代码或脚本才能在HBase中执行索引功能。
• 就硬件要求和内存块分配而言,这是昂贵的。
• 当我们要将数据从RDBMS(关系数据库管理系统)外部源迁移到HBase服务器时,HBase将需要新的设计。
Hadoop / HDFS与HBase之间的区别
HDFS | HBase的 |
---|---|
它是一个 分布式文件系统,非常适合存储大型数据文件。 | 它是一个 建立在HDFS之上的数据库,可为大型平板电脑提供快速的记录查找(和更新)。 |
它不是 支持快速的个人记录查找。 | HBase的 为大型表提供快速查找。 |
它具有很高的 延迟批处理支持。 | HBase的 支持低延迟地随机访问数十亿条记录中的单行。 |
它提供 仅顺序访问数据。 | HBase的 内部使用哈希表并提供随机访问权限,并存储数据 在索引的HDFS文件中,以加快查找速度。 |
Apache HBase的安装
如果已经安装了Hadoop和Java,则可以在Ubuntu上安装HBase。下面给出了在独立模式下安装HBase的分步指南:
下载HBase
Step 1使用链接下载HBase [1]:
链接: 点击这里
看起来像给定的屏幕截图。单击镜像站点[2]下载HBase。

Step 2
选择您要下载的版本。总是喜欢下载最新版本

Step 3
单击hbase-x.x.x-bin.tar.gz,HBase将开始下载其tar文件。将tar文件复制/粘贴到安装位置。

安装过程
• 将hbase-x.x.x-bin.tar.gz放在/ home / hduser中
• 通过执行以下命令将其解压缩:
• 通过执行以下命令将其解压缩:
滚动⇀
用于解压缩内容。它还将在/ home / hduser位置中创建一个hbase-x.x.x文件夹。

• 打开文件 hbase-env.sh 如下并提到 JAVA_HOME 位置中的路径。
• 替换现有的 JAVA_HOME 值与您当前的值,如下所述:
• 替换现有的 JAVA_HOME 值与您当前的值,如下所述:
滚动⇀
• 打开文件〜/.bashrc 按照上述相同的方式进行更新 HBASE_HOME 路径为:
滚动⇀
• 打开 hbase-site.xml 文件并更新配置中的以下属性:
滚动⇀
按照这种方式,我们添加了两个属性:
1. 对于HBase根目录
2. 对于数据目录,对应于ZooKeeper
所有HBase和ZooKeeper活动都直接引用此hbase-site.xml文件。
• 现在,运行命令 启动hbase.sh 在 hbase-x.x.x / bin 启动HBase的位置。要检查HMaster是否正在运行,可以使用jps命令。
• 可以使用以下命令启动HBase Shell“HBase的的壳”命令,它将进入交互式shell模式,在这里我们可以执行所有类型的命令。
概要
Hadoop deployment is extremely rising with each passing day, 和 HBase的 is the platform for 加工 on top of the HDFS. Upon learning HBase的, one can easily perform various operations, deploy Load Utility to load a file, 在 tegrate it with Hive, 和 learn about the HBase的 API 和 the HBase的 Shell.
因此,在本Apache HBase的教程中,我们讨论了HBase的简要介绍。此外,我们看到了HBase的架构,组件,优势&缺点,以及对HBase的需求。
因此,在本Apache HBase的教程中,我们讨论了HBase的简要介绍。此外,我们看到了HBase的架构,组件,优势&缺点,以及对HBase的需求。
参考: //hbase.apache.org/
请分享这个...