创建 Hadoop 集群

您可以使用 Dataproc 创建一个或多个 Compute Engine 实例,以便连接到 Bigtable 实例并运行 Hadoop 作业。本页面介绍了如何使用 Dataproc 来自动完成以下任务:

  • 安装 Hadoop 和 Java 版 HBase 客户端
  • 配置 Hadoop 和 Bigtable
  • 为 Bigtable 设置正确的授权范围

创建 Dataproc 集群后,您可以使用该集群来运行 Hadoop 作业,以便从 Bigtable 读取数据以及将数据写入 Cloud Bigtable。

本页面假定您已熟悉 Hadoop。如需详细了解 Dataproc,请参阅 Dataproc 文档

准备工作

开始前,您需要完成以下任务:

  • 创建 Bigtable 实例。请务必记下项目 ID 和 Bigtable 实例 ID。
  • 启用 Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON API。

    启用 API

  • 验证您的用户账号是否具有包含 storage.objects.get 权限的角色。

    在 Google Cloud Console 中打开 IAM 页面。

    打开 IAM 页面

  • 安装 Google Cloud CLI。如需了解详情,请参阅 gcloud CLI 设置说明
  • 运行以下命令来安装 gsutil 工具:
    gcloud components install gsutil
  • 安装 Apache Maven 以用于运行示例 Hadoop 作业。

    在 Debian GNU/Linux 或 Ubuntu 上,运行以下命令:

    sudo apt-get install maven

    在 RedHat Enterprise Linux 或 CentOS 上,运行以下命令:

    sudo yum install maven

    在 macOS 上,安装 Homebrew,然后运行以下命令:

    brew install maven
  • 克隆 GitHub 代码库 GoogleCloudPlatform/cloud-bigtable-examples,其中包含使用 Bigtable 的 Hadoop 作业示例:
    git clone https://github.com/GoogleCloudPlatform/cloud-bigtable-examples.git

创建 Cloud Storage 存储桶

Dataproc 使用 Cloud Storage 存储桶来存储临时文件。为避免文件命名冲突,请为 Dataproc 创建一个新的存储桶。

Cloud Storage 存储桶名称必须在所有存储分区中保持全局唯一。 请选择一个可能还没有被使用过的存储桶名称,例如,将您的 Google Cloud 项目名称加入存储桶名称中。

选择名称后,请使用以下命令创建新的存储桶,并将方括号中的值替换为适当值:

gsutil mb -p [PROJECT_ID] gs://[BUCKET_NAME]

创建 Dataproc 集群

运行以下命令来创建一个包含四个工作器节点的 Dataproc 集群,并将方括号中的值替换为适当的值:

gcloud dataproc clusters create [DATAPROC_CLUSTER_NAME] --bucket [BUCKET_NAME] \
    --region [region] --num-workers 4 --master-machine-type n1-standard-4 \
    --worker-machine-type n1-standard-4

请参阅 gcloud dataproc clusters create 文档,了解您可以配置的其他设置。如果您收到包含 Insufficient 'CPUS' quota 文本的错误消息,请尝试将 --num-workers 标志设置为较低的值。

测试 Dataproc 集群

设置完 Dataproc 集群后,您可以对该集群进行测试,方法是运行示例 Hadoop 作业来统计某一字词在文本文件中出现的次数。此示例作业使用 Bigtable 来存储操作结果。您可以使用此示例作业作为参考来设置自己的 Hadoop 作业。

运行示例 Hadoop 作业

  1. 在您克隆了 GitHub 代码库的目录中,切换到 java/dataproc-wordcount 目录。
  2. 运行以下命令来构建项目,并将方括号中的值替换为适当的值:

    mvn clean package -Dbigtable.projectID=[PROJECT_ID] \
        -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
    
  3. 运行以下命令来启动 Hadoop 作业,并将方括号中的值替换为适当的值:

    ./cluster.sh start [DATAPROC_CLUSTER_NAME]
    

该作业完成后,系统将显示输出表的名称,其格式为 WordCount 一词后跟一个连字符和一个专属编号:

Output table is: WordCount-1234567890

验证 Hadoop 作业的结果

(可选)运行 Hadoop 作业后,您可以使用 cbt CLI 来验证该作业是否已成功运行:

  1. 在 Cloud Shell 中打开一个终端窗口。

    在 Cloud Shell 中打开

  2. 安装 cbt CLI:
        gcloud components update
        gcloud components install cbt
  3. 扫描输出表以查看 Hadoop 作业的结果,并将 [TABLE_NAME] 替换为输出表的名称:
        cbt -instance [BIGTABLE_INSTANCE_ID] read [TABLE_NAME]
      

确认集群已正确设置后,您现在就可以使用该集群来运行自己的 Hadoop 作业了。

删除 Dataproc 集群

使用完 Dataproc 集群后,您可以运行以下命令来关停并删除该集群,并将 [DATAPROC_CLUSTER_NAME] 替换为您的 Dataproc 集群的名称:

gcloud dataproc clusters delete [DATAPROC_CLUSTER_NAME]

后续步骤