Dataproc:本地 Hive Metastore 的主要用例是什么?

Dataproc: What is the primary use case of local Hive metastore?

默认情况下,Dataproc 使用主节点上的本地 MySQL(图像版本 1.5+)数据库作为 Hive table 元数据存储。

我不完全理解这个本地元数据存储的主要用例。

使用它的好处和不使用它的缺点是什么?

Dataproc 上的 Hive Metastore 有 3 种部署模式:

  1. 集群内 MySQL 和 Hive Metastore。这是 默认值 。 Hive 元数据(table 模式)的生命周期与集群相同。一个典型的用例是您在 GCS 中有输入数据,并且希望输出数据也位于 GCS 中。在您的 Hive 脚本中,您首先为输入和输出数据创建外部 table,然后通过一些转换从输入 table 查询数据并将结果插入输出 table。查询完成后,不再需要 table 元数据。

  2. 外部 MySQL,集群内 Hive Metastore。在此部署中,您将 Hive 元数据存储在外部 MySQL 实例中,通常是 Cloud SQL 实例。集群内 Hive Metastore 使用外部 MySQL 实例作为底层数据库。有关详细信息,请参阅此 doc

  3. 外部 MySQL 和 Hive Metastore。这是推荐的模式。在此部署中,集群中没有 MySQL 和 Hive Metastore,Hive Server2 依赖外部 Hive Metastore,通常是 Dataproc Metastore Service。有关详细信息,请参阅此 doc

当您不需要 Hive 元数据生命周期来延长集群生命周期时,请选择模式 1。需要时选择模式 2 或 3。