hadoop - Hive 服务、HiveServer2 和 MetaStore 服务?

标签 hadoop hive hive-metastore

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

我遇到了以下关于配置单元的术语:Hive Serviceshiveserver2metastore 等。

引用本书(Hadoop:权威指南)中的以下图表。

hive 架构:

enter image description here

元存储配置:

enter image description here

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

enter image description here

我无法理解以下内容:

1)Hive架构图中的Hive Services是什么?我们说 hiveserver2 是一样的吗?

2)Hive架构图中的Driver是什么?

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

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

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

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

最佳答案

hive 服务

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

司机

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

元存储服务器

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

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

参见 Hive Wiki

Metastore JVM

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

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

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

HiveServer1 is deprecated .随意阅读它,但不要使用它。

关于hadoop - Hive 服务、HiveServer2 和 MetaStore 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49799838/

相关文章:

hadoop - 重新执行如何成为容错的主要来源?

java - 将对象副本传递给 hadoop 中所有映射器的最佳实践

java - Hadoop mapreduce中大数据的矩阵乘法

hadoop - 与Hive中的其他文件一起处理xml文件

hadoop - Hive服务器未启动

sql - 是否可以更改Hive中分区表上的列的元数据?

Java:Hadoop:MapReduce:使用过滤器从 hbase 检索数据,int/string 比较

hadoop - 直接通过数据文件查看hive的内容

sql - 在 Hive 或 Impala 或 Pig 中通过字符串匹配连接表

azure - 如何将Hive分区文件和分桶文件合并为一个大文件?