创建 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。
-
Enable the Cloud Bigtable API, Cloud Bigtable Admin API, Dataproc, and Cloud Storage JSON APIs.
- 验证您的用户账号是否具有包含
storage.objects.get
权限的角色。在 Google Cloud Console 中打开 IAM 页面。
- 安装 Google Cloud CLI。如需了解详情,请参阅 gcloud CLI 设置说明。
-
安装 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 项目名称加入存储分区名称中。
选择名称后,请使用以下命令创建新的存储分区,并将方括号中的值替换为适当值:
gcloud storage buckets create gs://[BUCKET_NAME] --project=[PROJECT_ID]
创建 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 作业
- 在您克隆了 GitHub 代码库的目录中,切换到
java/dataproc-wordcount
目录。 运行以下命令来构建项目,并将方括号中的值替换为适当的值:
mvn clean package -Dbigtable.projectID=[PROJECT_ID] \ -Dbigtable.instanceID=[BIGTABLE_INSTANCE_ID]
运行以下命令来启动 Hadoop 作业,并将方括号中的值替换为适当的值:
./cluster.sh start [DATAPROC_CLUSTER_NAME]
该作业完成后,系统将显示输出表的名称,其格式为 WordCount
一词后跟一个连字符和一个专属编号:
Output table is: WordCount-1234567890
验证 Hadoop 作业的结果
(可选)运行 Hadoop 作业后,您可以使用 cbt
CLI 来验证该作业是否已成功运行:
-
在 Cloud Shell 中打开一个终端窗口。
- 安装
cbt
CLI:gcloud components update
gcloud components install cbt
- 扫描输出表以查看 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]
后续步骤
- 详细了解 Dataproc。
- 开始使用 Java 版 HBase 客户端。