Hive 和 HBase 的区别
Hive 和 HBase 都是基于 Hadoop 的大数据解决方案。这些技术在几乎任何实际使用场景中都服务于不同的目的。当您登录 Facebook 时,您可能会看到您的朋友列表、新闻提要、广告建议、朋友建议等。Twitter 也是如此。
Apache Hadoop 以及我们今天将探讨的其他技术,例如 Apache Hive 与 Apache HBase,就是 Facebook 以一种可呈现的方式加载所有杂乱数据的方式。Apache Hadoop 使 Facebook 的 20 亿多日活用户成为可能。
由于大数据系统很复杂,因此所有技术必须一起使用。**Hive** 建议用于分析时间序列数据。它可以评估趋势和网站日志。不建议使用 Hive 进行实时查询,因为结果可能需要一些时间。
HBase 是一个用于对大数据执行实时查询的出色工具。
什么是 HBase?
Hadoop 文件系统支持面向列的 HBase 数据库。这个开源项目可以在两个方向上水平扩展。HBase 模仿了 Google 的大表。它允许对大量结构化数据进行随机访问。它使用 Hadoop 的容错能力。它允许实时对 Hadoop 文件系统数据进行任意读写访问。可以将数据存储在 HDFS 或 HBase 中。数据使用者使用 HBase 读取 HDFS 数据。位于 Hadoop 上方的 HBase 提供读/写数据访问。
一些**HBase 的特性**包括:
HBase 是专门针对低延迟操作而开发的。
HBase 在随机读写操作部门有很多活动。
HBase 能够以表格的形式存储大量信息。
HBase 能够以表格的形式存储大量信息。
在集群环境中提供线性级别和模块化级别的可扩展性。
读写操作必须严格遵守此原则。
表数据的自动且可调整的分片
对位于不同区域的服务器提供自动故障转移支持
使支持 Hadoop Map 更方便的基础类。
减少 HBase 表中的作业数量。
HBase 的应用
HBase 在各个行业中有多种用途,包括医疗保健行业、电子商务业务和体育行业。例如:
HBase 用于医疗保健领域,用于保存基因序列以及个人或整个地区的疾病历史。
HBase 用于医疗保健领域,用于保存基因序列以及个人或整个地区的疾病历史。
在体育界,HBase 是存储比赛细节以及每场比赛历史的首选数据库。它利用这些事实来改进其预测。
什么是 Hive?
Apache Hive 是一款开源数据仓库软件,用于读取、写入和管理 HDFS 或 Apache HBase 中的大型数据集文件。Hive 允许 SQL 开发人员使用类似于 SQL 的 HQL 命令查询和分析数据。它通过消除编写 Java 代码的需要来简化 MapReduce 编程。如果您使用 HQL 编写查询,Hive 将自动构建映射和减少函数。
一些**Hive 的特性**包括:
Hive 旨在仅搜索和管理表中的结构化数据。
Hive 可扩展、快速且使用众所周知的理念。
模式存储在数据库中,处理后的数据存储在 Hadoop 分布式文件系统 (HDFS) 中
首先创建表和数据库,然后将数据放入正确的表中。
Hive 支持 ORC、SEQUENCEFILE、RCFILE 和 TEXTFILE 文件格式。
Hive 由**三个核心部分**组成:
**Hive 客户端** - Hive 为各种应用程序提供驱动程序。基于 Thrift 的应用程序可以使用 Thrift 客户端进行通信。
**Hive 服务** - Hive 服务使客户端交互成为可能。Hive 服务处理客户端的查询。
**Hive 存储和计算** Hive 的“元数据存储数据库”存储表元数据。表数据和查询结果保存在 Hadoop 的 HDFS 集群中。
HBase 和 Hive 之间的区别
下表重点介绍了 HBase 和 Hive 之间的主要区别:
比较依据 | HBase | Hive |
---|---|---|
定义 | HBase 是一个面向列的分布式数据库,其基础是 HDFS。它是一个开源的 NoSQL 数据库,具有行和列。 | Apache Hive 是一个基于 Hadoop 的开源数据仓库。它搜索和分析包含在 Hadoop 文件中的结构化和半结构化数据。 |
功能 | 键值存储,具有低延迟和对数据进行任意查询的能力。数据以面向列的格式存储。 | 这个查询引擎类似于 SQL,是为大容量数据存储库而开发的。它兼容多种文件格式。 |
架构 | HBase 是一个开源的 NoSQL 数据库,运行在 Apache Hadoop 和 HDFS 上。这种可扩展的存储可以容纳无限的数据。 | Hive 是一个基于 Map Reduce 的 SQL 引擎,构建在 HDFS 上。HQL 用于查询 HDFS 数据(Hive 查询语言)。 |
处理 | 事务处理(通常称为 OLTP)是 HBase 使用的主要应用。但是,在 HBase 中,实时处理是可能的。 | 由于批处理是 Hive 的主要用途,因此它属于 OLAP 类别。在 Hive 中,也无法执行实时处理。 |
数据类型 | 仅支持非结构化格式的数据。用户定义从数据字段名称到 Java 支持的数据类型的映射。 | 允许存储结构化和非结构化数据。提供对常见 SQL 数据类型(例如 INT、FLOAT 和 VARCHAR 等)的内置支持。 |
用途 | HBase 创建了一个廉价、适应性和易于维护的基于 Hadoop 的 GIS(HBGIS)。稀疏大数据集的磁盘上列存储格式。使用键值从大型数据集中提取随机数据很容易。 | Hive 对 PB 级 Hadoop 数据运行 SQL 查询。它还提供了一种类似于 SQL 的查询语言 HQL,用于查询 Hadoop 节点数据。 |
延迟 | 最小,尽管可能不一致。由于 HBase 设计的结构限制,在承受强写入需求时,可能会出现延迟峰值。 | 中等到高,具体取决于计算机的响应能力。分布式执行提供了比 RDBMS 等单一查询系统更好的数据性能。 |
结论
尽管 HBase 和 Hive 都是基于 Hadoop 的数据仓库,用于存储和处理大量数据,但它们以非常不同的方式存储和查询数据。
HBase 是一个面向列的数据库管理系统,用于存储大量数据。它还允许您存储稀疏数据集,这在许多大数据用例中很常见。
另一方面,Hive 更像是一个传统的数据仓库报表系统。它构建在 Hadoop 之上,用于按计划运行处理作业,然后将结果加载到客户端应用程序可以查询的汇总表中。