google-cloud-dataproc - Dataproc:本地 Hive 元存储的主要用例是什么?
问题描述
默认情况下,Dataproc 使用主节点上的本地 MySQL(映像版本 1.5+)数据库作为 Hive 表元数据存储。
我不完全理解这个本地元数据存储的主要用例。
使用它的好处和不使用它的缺点是什么?
解决方案
Dataproc 上的 Hive Metastore 有 3 种部署模式:
集群内 MySQL 和 Hive Metastore。这是默认设置。Hive 元数据(表模式)的生命周期与集群相同。一个典型的用例是您在 GCS 中有输入数据,并且希望输出数据也在 GCS 中。在您的 Hive 脚本中,您首先为输入和输出数据创建外部表,然后通过一些转换从输入表中查询数据并将结果插入到输出表中。查询完成后,不再需要表元数据。
外部 MySQL,集群内 Hive Metastore。在此部署中,您将 Hive 元数据存储在外部 MySQL 实例中,通常是 Cloud SQL 实例。集群内 Hive Metastore 使用外部 MySQL 实例作为底层数据库。有关更多详细信息,请参阅此文档。
外部 MySQL 和 Hive Metastore。这是推荐的模式。在此部署中,集群中没有 MySQL 和 Hive Metastore,Hive Server2 依赖于外部 Hive Metastore,通常是 Dataproc Metastore Service。有关详细信息,请参阅此文档。
当您不需要 Hive 元数据生命周期来超过集群生命周期时,请选择模式 1。需要时选择模式 2 或 3。
推荐阅读
- sql-server - 迁移 SQL Server 2000 数据库的问题
- dart - 为什么我们应该避免像飞镖一样
- sequelize.js - Sequelize Typescript @BeforeUpdate Hook 不起作用
- datatable - 如何在移动设备上隐藏数据表的特定列
- html - 将两个元素放在同一行
- javascript - 将数组声明为属性,然后作为道具传递给 Typescript 中的子组件
- hyperledger-fabric - 添加订购者和交换加密材料时的超级账本 TLS 问题
- angular - 根据 id 删除 *ngFor 行
- java - 我需要从输入中获取数据并在数组中创建一个包含学生成绩的学生类
- javascript - Gulp HTML缩小自定义标签不起作用