derby 中的 hive metastore 与 hive/warehouse 中的 hive metastore 有什么区别?

What is the difference between the hive metastore in derby vs the one in hive/warehouse?

这可能是一个非常基本的问题,请原谅我的无知。

我知道 hive 将在开箱即用(hive tar.bin 提取)香草设置中使用两个元存储。就我而言,我有配置单元 0.14.

derby 数据库中有一个 -- 在 hdfs 之外有一个名为 metastore_db 的默认文件夹名称。

在 /user/hive/warehouse 的 hdfs 中还有另一个。

这两者有什么区别?

Metastore 是 hive 存储 tables 模式的地方,以及更多数据如何在仓库中引用模式 table 数据的目录。

Warehouse 通常存储在 HDFS 中,metastore 存储在关系数据库中,例如 Derby、MySQL 或 Postgre。

Metastore 通常用于许多其他应用程序,例如 impala 用于在仓库中发现 tables。

在 Hive 中,Metastore 由 (1) 元存储服务和 (2) 数据库组成。

Metastore DB - 是任何 JDBC 符合要求的 RDBMS 数据库,它在其中存储 managed and external tables 的架构和分区详细信息。这可以被其他应用程序使用,例如 Impala,从中获取表和模式详细信息。顾名思义,它只存储元数据。

Metastore Service - Hive 还运行一个名为 Metastore 服务的单独服务来管理 Metastore 数据,例如将 Hive 表和分区的元数据存储在 Metastore DB 中,并提供客户端(包括 Hive)通过 Metastore 服务访问此信息 API.

Warehouse - Hive 数据存储在 HDFS 中,通常在 /user/hive/warehouse 下(或您在 hive 中指定为 hive.metastore.warehouse.dir 的任何路径-site.xml).