部署 Dataproc Metastore 服务

本页面介绍如何创建 Dataproc Metastore 服务并从 Dataproc 集群连接到该服务。之后,通过 SSH 连接到集群,启动 Apache Hive 实例,并运行一些基本查询。

Dataproc Metastore 为您提供完全兼容的 Hive Metastore (HMS),这是开源大数据生态系统中用于管理技术元数据的既定标准。此服务可帮助您管理数据湖的元数据,并在您使用的各种数据处理工具之间提供互操作性。


如需在 Google Cloud 控制台中直接遵循有关此任务的分步指导,请点击操作演示

操作演示


准备工作

  1. 登录您的 Google Cloud 账号。如果您是 Google Cloud 新手,请创建一个账号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. 确保您的 Google Cloud 项目已启用结算功能

  4. 启用 Dataproc Metastore, Dataproc API。

    启用 API

  5. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  6. 确保您的 Google Cloud 项目已启用结算功能

  7. 启用 Dataproc Metastore, Dataproc API。

    启用 API

必需的角色

如需获取创建 Dataproc Metastore 和 Dataproc 集群所需的权限,请让管理员向您授予以下 IAM 角色:

  • 如需授予对所有 Dataproc Metastore 资源的完整访问权限(包括设置 IAM 权限),请执行以下操作: 针对用户帐号或服务帐号的 (roles/metastore.admin)
  • 如需授予对 Dataproc Metastore 资源的完全控制权,请执行以下操作: 用户帐号或服务帐号的 Dataproc Metastore Editor (roles/metastore.editor)
  • 如需创建 Dataproc 集群,请执行以下操作: (roles/dataproc.worker) 针对服务帐号

如需详细了解如何授予角色,请参阅管理访问权限

这些预定义角色包含创建 Dataproc Metastore 和 Dataproc 集群所需的权限。如需查看所需的确切权限,请展开所需权限部分:

所需权限

如需创建 Dataproc Metastore 和 Dataproc 集群,您需要拥有以下权限:

  • 如需创建 Dataproc Metastore 服务,请对用户帐号或服务帐号拥有 metastore.services.create 权限
  • 如需创建 Dataproc 集群,请对服务帐号开启 Dataproc worker (roles/dataproc.worker) 权限

您也可以使用自定义角色或其他预定义角色来获取这些权限。

如需详细了解特定的 Dataproc Metastore 角色和权限,请参阅 Dataproc Metastore IAM 概览

创建 Dataproc Metastore 服务

以下说明介绍了如何使用提供的默认设置创建基本的 Dataproc Metastore 服务。

控制台

  1. 在 Google Cloud 控制台中,转到 Dataproc Metastore 页面。

    转到 Dataproc Metastore

  2. 在导航菜单中,点击 +创建

    此时会打开创建 Metastore 服务对话框。

  3. 选择 Dataproc Metastore 2

  4. 服务名称字段中,输入 example-service

  5. 数据位置字段中,选择 us-central1

  6. 对于其余服务配置选项,请使用提供的默认值。

  7. 如需创建并启动服务,请点击提交

您的新 Metastore 服务会显示在 Dataproc Metastore 页面上。状态显示为正在创建,直到服务可供使用。准备就绪后,状态会更改为 Active。预配服务可能需要几分钟时间。

以下屏幕截图显示了使用一些提供的默认值的创建服务页面示例。

“创建服务”页面。

gcloud CLI

如需使用提供的默认值创建 Metastore 服务,请运行以下 gcloud metastore services create 命令:

 gcloud metastore services create example-service \
     --location=us-central1 \
     --instance-size=MEDIUM

此命令会在默认区域 (us-central1) 中以默认实例大小 (MEDIUM) 创建名为 example-service 的服务。

REST

按照 API 说明使用 APIs Explorer 创建服务

创建 Dataproc 集群并连接到 Dataproc Metastore

接下来,您将创建一个 Dataproc 集群,并从该集群连接到您的 Metastore。之后,您的集群会将 Metastore 服务当作 HMS 使用。您在此处创建的集群会使用系统提供的默认设置。

控制台

  1. 在 Google Cloud 控制台中,转到 Dataproc 集群页面。

    转到 Dataproc 集群

  2. 在导航栏中,选择 +创建集群

    系统将打开创建集群对话框,其中提供了多个基础架构选项供您选择。

  3. Compute Engine 上的集群行中,选择创建

    此时会打开在 Compute Engine 上创建 Dataproc 集群页面。

  4. 集群名称字段中,输入 example-cluster

  5. 区域可用区菜单中,选择 us-central1

  6. 对于其余的设置集群选项,使用提供的默认值。

  7. 在导航菜单中,点击自定义集群(可选)标签页。

  8. Dataproc Metastore 部分中,选择您之前创建的 Metastore 服务。

    如果您按原样按照本教程进行操作,它将被命名为 example-service

  9. 对于其余服务配置选项,请使用提供的默认值。

  10. 如需创建集群,请点击创建

    您的新集群会显示在集群列表中。在集群可供使用之前,集群状态会显示正在预配。准备就绪后,状态会更改为 Active。预配集群可能需要几分钟时间。

gcloud CLI

如需使用提供的默认设置创建集群,请运行以下 gcloud dataproc clusters create 命令:

 gcloud dataproc clusters create example-cluster \
    --dataproc-metastore=projects/PROJECT_ID/locations/us-central1/services/example-service \
    --region=us-central1

PROJECT_ID 替换为您在其中创建了 Dataproc Metastore 服务的项目 ID。

REST

按照 API 说明使用 API Explorer 创建集群

使用 Dataproc 集群连接到 Apache Hive

接下来的步骤展示了如何在 Apache Hive 中运行一些示例命令来创建数据库和表。

接下来,在 Dataproc 集群上打开 SSH 会话,并启动 Hive 会话。

  1. 在 Google Cloud 控制台中,转到虚拟机实例页面。
  2. 在虚拟机实例列表中,点击 example-cluster 旁边的 SSH

在该节点上的主目录中打开了一个浏览器窗口,其输出类似于以下内容:

Connected, host fingerprint: ssh-rsa ...
Linux cluster-1-m 3.16.0-0.bpo.4-amd64 ...
...
example-cluster@cluster-1-m:~$

如需启动 Hive 并创建数据库和表,请在 SSH 会话中运行以下命令:

  1. 启动 Hive。

    hive
    
  2. 创建一个名为 myDatabase 的数据库。

    create database myDatabase;
    
  3. 显示您创建的数据库。

    show databases;
    
  4. 使用您创建的数据库。

    use myDatabase;
    
  5. 创建一个名为 myTable 的表。

    create table myTable(id int,name string);
    
  6. 列出 myDatabase 下的表。

    show tables;
    
  7. 描述您创建的表的架构。

    desc MyTable;
    

运行这些命令会显示类似于以下内容的输出:

$hive

hive> show databases;
OK
default
hive> create database myDatabase;
OK
hive> use myDatabase;
OK
hive> create table myTable(id int,name string);
OK
hive> show tables;
OK
myTable
hive> desc myTable;
OK
id                      int
name                    string

清理

为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。

  1. 在 Google Cloud 控制台中,进入管理资源页面。

    转到“管理资源”

  2. 如果您打算删除的项目已附加到某个组织,请展开名称列中的组织列表。
  3. 在项目列表中,选择要删除的项目,然后点击删除
  4. 在对话框中输入项目 ID,然后点击关闭以删除项目。

或者,您可以删除本教程中使用的资源:

  1. 删除 Dataproc Metastore 服务。

    控制台

    1. 在 Google Cloud 控制台中,打开 Dataproc Metastore 页面:

      转到 Dataproc Metastore

    2. 在服务列表中,选择 example-service

    3. 点击导航栏中的删除

      此时系统会打开删除服务对话框。

    4. 在对话框中,点击删除

      您的服务不再出现在服务列表中。

    gcloud CLI

    如需删除您的服务,请运行以下 gcloud metastore services delete 命令。

     gcloud metastore services delete example-service \
         --location=us-central1

    REST

    按照 API 说明使用 APIs Explorer 删除服务

    所有删除操作都会立即成功执行。

  2. 删除 Dataproc Metastore 服务的 Cloud Storage 存储桶

  3. 删除使用 Dataproc Metastore 服务的 Dataproc 集群

后续步骤