Hive服务,HiveServer2和MetaStore服务?

Cur*_*ind 6 hadoop hive hive-metastore

我试图hive从体系结构方面来理解,我指的是汤姆·怀特(Tom White)关于Hadoop的书。

我遇到下列条款进来问候蜂巢:Hive Serviceshiveserver2metastore 等等。

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

蜂巢架构:

在此处输入图片说明

MetaStore配置:

在此处输入图片说明

Hive体系结构显示什么是“驱动程序”:

在此处输入图片说明

我无法理解以下内容:

1)Hive ServicesHive架构图中有什么?我们说的也一样hiveserver2吗?

2)DriverHive架构图中是什么?

3)是什么MetaStore(我不是指Metastore数据库)。是否正在运行某些流程?如果是这样,这是hiveserver2吗?由于该图MetaStore可以是远程的,因此,如果这是一个JVM进程,它属于哪个组件?

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

5)在“ Hive体系结构”图中,是否显示“ Hive Server”?这是什么?这就是我们所说的“ Hive Server 1”,“ Hive Server2”。

谁能帮忙了解一下?

cri*_*007 6

蜂巢服务

  • HiveServer2
  • Hive Metastore
  • HCatalog + WebHcat
  • Beeline和Hive CLI
  • 节俭的客户
  • FileSystem :: HDFS和其他兼容文件系统,例如S3
  • 执行引擎:: MapReduce,Tez,Spark
  • Hive Web UI(在Hive 2.x中添加)。也许也是Tez或Spark UI,但实际上不是

司机

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

Metastore服务器

不属于HiveServer2。从字面上看,这是一个运行在RDBMS之上的进程(是的,运行Hive和Hadoop时仍然需要这些)。

支持的远程Metastore服务器= Oracle,MySQL,Postgres
嵌入式Metastore(不建议用于生产环境)= Derby

参见Hive Wiki

Metastore JVM

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

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

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

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

  • 该功能分布在所有组件中。HiveServer2 接受查询请求,联系元存储,计算一些查询优化,然后为适当的执行引擎提交 YARN 容器。结果反馈到HiveServer2,并作为结果集收集到客户端 (2认同)
  • Beeline 是一个 JDBC 驱动程序,所以是的。再说一次,我不会称那个橙色盒子为驱动程序。它本质上是一个 SQL 编译器到执行引擎运行时,这不是客户端操作 (2认同)