Hive Metastore

Dataproc Metastore 是全代管式的高可用性 自动修复的无服务器 Apache Hive Metastore (HMS)。

为了全面管理您的元数据,Dataproc Metastore 会映射您的 将数据导出到 Apache Hive 表格。

支持的 Apache Hive 版本

Dataproc Metastore 仅支持特定版本的 Apache Hive。 如需了解详情,请参阅 Hive 版本政策

Hive 如何处理元数据

由于 Dataproc Metastore 是 Hive Metastore, 请务必了解它是如何管理元数据的

默认情况下,所有 Hive 应用都可以拥有代管式内部表非托管外部表。也就是说,存储在 Dataproc Metastore 服务可以同时存在于内部和外部表中。

修改数据时,Dataproc Metastore 服务 (Hive) 会将 内部表和外部表的不同。

  • 内部表。管理元数据和表数据。
  • 外部表。仅管理元数据。

例如,如果您使用 DROP TABLE Hive SQL 删除表定义 声明:

drop table foo
  • 内部表。Dataproc Metastore 会删除所有元数据。 它还会删除与表关联的文件。

  • 外部表。Dataproc Metastore 仅删除元数据。 它会保留与表关联的数据。

Hive 仓库目录

Dataproc Metastore 使用 Hive 仓库目录来管理 内部表格Hive 仓库目录是存储您的实际数据的位置, 存储的数据。

使用 Dataproc Metastore 服务时,默认的 Hive 仓库 目录是 Cloud Storage 存储桶。仅限 Dataproc Metastore 支持将 Cloud Storage 存储分区用作仓库目录。 相比之下,HMS 与本地 HMS 不同, 目录通常指向本地目录。

每当您创建存储桶时, Dataproc Metastore 服务。可以通过设置 hive.metastore.warehouse.dir 上的 Hive Metastore 配置替换 属性。

制品 Cloud Storage 存储分区

工件存储桶用于存储您的 Dataproc Metastore 工件 例如导出的元数据和托管式内部表数据。

创建 Dataproc Metastore 服务时,系统会在您的项目中自动为您创建 Cloud Storage 存储桶。默认情况下, 工件存储桶和仓库目录指向同一个存储桶。您 无法更改工件存储桶的位置,但 更改 Hive 仓库目录的位置。

制品存储桶位于以下位置:

  • gs://your-artifacts-bucket/hive-warehouse
  • 例如 gs://gcs-your-project-name-0825d7b3-0627-4637-8fd0-cc6271d00eb4

访问 Hive 仓库目录

系统自动为您创建存储桶后,请确保您的 Dataproc 服务账号 有权访问 Hive 仓库目录。

  • 要在对象级别访问仓库目录(例如 gs://mybucket/object),请使用 roles/storage.objectAdmin 角色向 Dataproc 服务账号授予对存储桶存储对象的读写权限。此角色必须在存储桶级别或更高级层设置。

  • 要在使用顶级文件夹(例如 gs://mybucket)时访问仓库目录,请使用 roles/storage.storageAdmin 角色向 Dataproc 服务账号授予对存储桶存储对象的读写权限。

如果 Hive 仓库目录与 Dataproc Metastore,请确保 服务代理有权访问 Hive 仓库目录。服务 Dataproc Metastore 项目的代理是 service-PROJECT_NUMBER@gcp-sa-metastore.iam.gserviceaccount.com. 使用 roles/storage.objectAdmin 角色。

查找 Hive 仓库目录

  1. 打开 Dataproc Metastore 页面。
  2. 点击您的服务名称。

    系统会打开服务详情页面。

  3. 在配置表中,找到 Metastore 配置替换 >hive.metastore.warehouse.dir.

  4. 找到以 gs:// 开头的值。

    此值是您的 Hive 仓库目录的位置。

    hive.metastore.warehouse.dir 值

更改 Hive 仓库目录

如需将您自己的 Cloud Storage 存储桶与 Dataproc Metastore 搭配使用, 设置 Hive Metastore 配置替换项以指向新的存储桶位置。

如需更改默认仓库目录,请遵循以下建议。

  • 请勿使用 Cloud Storage 存储桶根目录 (gs://mybucket) 来存储 蜂巢表。

  • 请确保您的 Dataproc Metastore 虚拟机服务账号 有权访问 Hive 仓库目录

  • 为获得最佳结果,请使用与您的 Dataproc Metastore 服务位于同一区域的 Cloud Storage 存储桶。虽然 Dataproc Metastore 支持跨区域存储分区 共置资源的性能更好。例如,一个欧盟多区域存储桶 不适用于 us-central1 服务。跨区域访问会导致 延迟时间较长、缺少区域级故障隔离功能,并且跨区域收费 网络带宽。

更改 Hive 仓库目录

  1. 打开 Dataproc Metastore 页面。
  2. 点击您的服务名称。

    系统会打开服务详情页面。

  3. 在配置表中找到 Metastore 配置替换 >hive.metastore.warehouse.dir 部分。

  4. hive.metastore.warehouse.dir 值更改为您的新映像所在的位置 存储桶。例如 gs://my-bucket/path/to/location

删除存储桶

删除 Dataproc Metastore 服务不会自动执行 删除 Cloud Storage 工件存储桶。您的存储桶不会自动 因为其中可能包含有用的服务后数据。如需删除您的存储桶, 运行 Cloud Storage 删除操作

后续步骤