python数据分析人工智能机器学习软件测试Python专家之路程序员

HIVE快速入门教程2Hive架构

2019-06-04  本文已影响4人  python测试开发

什么是Hive?

Hive是在Hadoop分布式文件系统(HDFS)之上开发的ETL和数据仓库工具。 Hive使执行操作变得容易

Hive重要特征

关于Hive的一些关键点:

Hive与关系数据库比较

通过使用Hive,我们可以执行一些在关系数据库中无法实现的特殊功能。 对于大量的peta字节数据,查询它并在几秒钟内获得结果非常重要。 Hive非常有效地执行此操作,它可以快速处理查询并在第二时间生成结果。

现在让我们看看是什么让Hive如此之快。

Hive和关系数据库之间的一些关键差异如下:

关系数据库是“ READ上的Schema和Write上的Schema ”。 首先创建一个表,然后将数据插入到特定的表中。 在关系数据库表上,可以执行插入,更新和修改等功能。

Hive是“只读READ的架构 ”。 因此,更新,修改等功能不适用于此。 因为典型群集中的Hive查询在多个数据节点上运行。 因此无法跨多个节点更新和修改数据。(Hive版本低于0.13)

此外,Hive支持“ READ Many WRITE Once ”模式。 这意味着在插入表后我们可以更新最新的Hive版本中的表。

注意 :然而,新版本的Hive具有更新的功能。 Hive版本(Hive 0.14)提供了更新和删除选项作为新功能

Hive架构

image.png

上面的屏幕截图详细介绍了Apache Hive架构

Hive主要由3个核心部分组成

Hive为与不同类型的应用程序的通信提供了不同的驱动程序。 对于基于Thrift的应用程序,它将为Thrift客户端提供通信。

对于Java相关的应用程序,它提供JDBC驱动程序。 除了提供ODBC驱动程序的任何类型的应用程序。 这些客户端和驱动程序又在Hive服务中与Hive服务器进行通信。

客户端与Hive的交互可以通过Hive Services执行。 如果客户端想要在Hive中执行任何与查询相关的操作,则必须通过Hive Services进行通信。

CLI是命令行界面,充当DDL(数据定义语言)操作的Hive服务。 所有驱动程序都与Hive服务器和Hive服务中的主驱动程序进行通信,如上面的体系结构图所示。

Hive服务中的驱动程序代表主要驱动程序,它传递所有类型的JDBC,ODBC和其他客户端特定的应用程序。 驱动程序将处理来自不同应用程序的请求到元存储和现场系统以进行进一步处理。

诸如Meta存储,文件系统和作业客户端之类的Hive服务又与Hive存储通信并执行以下操作:在Hive中创建的表的元数据信息存储在Hive“元存储数据库”中;表中加载的查询结果和数据将存储在HDFS上的Hadoop集群中。

从上面的屏幕截图中我们可以了解Hive与Hadoop中的作业执行流程

Hive中的数据流表现为以下模式;

Hive通过执行引擎持续与Hadoop文件系统及其守护进程联系。 作业流程图中的虚线箭头显示了执行引擎与Hadoop守护程序的通信。

参考资料

不同的Hive模式

Hive可以在两种模式(Local和Map reduce)下运行,具体取决于Hadoop中数据节点的大小。

何时使用本地模式:

何时使用Map reduce模式:

在Hive中,我们可以设置此属性以提及Hive可以使用哪种模式? 默认情况下,它适用于Map Reduce模式,对于本地模式,您可以进行以下设置。

Hive以本地模式设置工作

SET mapred.job.tracker=local;

从Hive版本0.7开始,它支持一种模式,可以自动在本地模式下运行map reduce作业。

什么是Server2 (HS2)?

HiveServer2(HS2)是一个执行以下功能的服务器接口:

从最新版本开始,它具有一些基于Thrift RPC的高级功能;

小结:

Hive是一个位于Hadoop生态系统之上的ETL和数据仓库工具,用于处理结构化和半结构化数据。

用于满足客户要求的用户特定逻辑。

上一篇下一篇

猜你喜欢

热点阅读