15

我试图hive从体系结构的角度来理解,我指的是 Tom White 关于 Hadoop 的书。

关于蜂巢,我遇到了以下术语:Hive Services, hiveserver2,metastore 等等。

参考书中的下图(Hadoop:权威指南)。

蜂巢架构:

在此处输入图像描述

元存储配置:

在此处输入图像描述

Hive 架构显示了“驱动程序”是什么:

在此处输入图像描述

我无法理解以下内容:

1) Hive ServicesHive 架构图中的内容是什么?当我们说的时候是一样的hiveserver2吗?

2) DriverHive 架构图中是什么?

3)什么是MetaStore(我不是指 Metastore 数据库)。是某个运行的进程吗?如果是这样,这是否属于hiveserver2? 根据图表MetaStore可以是远程的,那么如果这是一个 JVM 进程,它属于哪个组件?

4)它说Hive service JVMMetaStore JVM Server。但是,这些组件安装在哪里?它们是“蜂巢”的“服务器”端的一部分吗?

5)在“Hive Architecture”图中,它说“Hive Server”?这是什么?这就是我们所说的“Hive Server 1”,“Hive Server2”。

任何人都可以帮助理解这一点吗?

4

2 回答 2

10

蜂巢服务

  • HiveServer2
  • Hive 元存储
  • HCatalog + WebHcat
  • 直线和蜂巢 CLI
  • 节俭的客户
  • FileSystem :: HDFS 和其他兼容的文件系统,如 S3
  • 执行引擎 :: MapReduce、Tez、Spark
  • Hive Web UI(在 Hive 2.x 中添加)。也许还有 Tez 或 Spark UI,但不是真的

司机

JDBC/ODBC 或 Thrift 接口具有驱动程序。
还有一些进程解释查询并将其编译为执行引擎代码。我个人称它为解释器或编译器,而不是驱动程序

元存储服务器

不是 HiveServer2 的一部分。它实际上是在 RDBMS 之上运行的进程(是的,在运行 Hive 和 Hadoop 时仍然需要这些)。

支持的远程 Metastore 服务器 = Oracle、MySQL、Postgres
Embedded Metastore(不推荐用于生产)= Derby

蜂巢维基

元存储 JVM

橙色框显示您可以将这些服务部署为与驱动程序(解释器)相同的 JVM 的一部分或作为远程服务器。wiki 描述了这些设置。

我相信这是一个将 HiveServer2 查询映射到 MetaStore 查询的辅助过程。例如,如何将 HiveQL 转换为从 MySQL 或 Postgres 读取元数据的进程?

它可以在服务器端运行,是的,但出于容错和性能原因,不推荐使用此设置。

HiveServer1 已弃用。随意阅读它,但不要使用它。

于 2018-04-12T23:02:42.023 回答
0

我的理解是:

Hive Services包括:HS2(有时可能会调用thrift server)、Driver、Compiler、Execution Engine。但这四个组件(HS2、Driver、Compiler、Execution Engine)都在 hiverserver2 进程中。所以在hive中,有3个进程:

  • HS2(包括 hs2 或 thrift 服务器、编译器、执行引擎)
  • 元存储
  • 网络HCat
于 2018-09-12T09:48:39.117 回答